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