Catching array out of bounds

Justin Johansson no at spam.com
Wed Nov 4 21:47:27 PST 2009


jicman Wrote:

> Greetings!
> 
> I have this program,
> 
> import std.stdio;
> void main()
> {
>   char[][] a = ["a","b","c"];
>   try
>   {
>     writefln(a[3]);
>   }
>   catch (ArrayBoundsError)
>   {
>     writefln("error...");
>   }
> }
> 
> when I compile it, I get,
> 
> 23:53:52.73>build -I..;c:\D\dmd\import array.d
> array.d(10): Error: identifier 'ArrayBoundsError' is not defined
> array.d(10): Error: ArrayBoundsError is used as a type
> Error: can only catch class objects, not 'void'
> 
> This is right from the D1 Arrays help...
> 
> http://www.digitalmars.com/d/1.0/arrays.html
> 
> What am I doing wrong?
> 
> thanks,
> 
> josé
> 

Hi josé,

You don't import modules as you show:
build -I..;c:\D\dmd\import array.d

You should be importing the array module into
your program using the following statement.

import std.array;

Also (and I' not 100% sure about this) that you might need to
declare a variable along with the catch statement like as follows
(at least that's what I always do regardless of whether or
not it may be omitted) ...

catch (ArrayBoundsError e) {
...
}

Good luck with your further D adventures,

Justin Johansson



More information about the Digitalmars-d-learn mailing list