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