Catching array out of bounds

jicman cabrera_ at _wrc.xerox.com
Thu Nov 5 06:39:21 PST 2009


Justin Johansson Wrote:

> 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é,
Hi Justin.

> 
> You don't import modules as you show:
> build -I..;c:\D\dmd\import array.d
I am giving the path of where the modules are.  The array.d is the program that contains the above code.

> 
> You should be importing the array module into
> your program using the following statement.
> 
> import std.array;
there is no module std.array for D1.  I don't know about D2, but D1 does not have it.

> 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) {
> ...
> }
I tried that also.  :-) Did you even try the little program?  Copy and paste to your favorite editor and give it a try. :-)
> 

Anybody else can provide me what is wrong with the program above?

thanks,

josé


More information about the Digitalmars-d-learn mailing list