Error Message useless

Ty Tower towerty at msn.com.au
Sat May 10 01:37:45 PDT 2008


Nick Sabalausky Wrote:

> "Tower Ty" <towerty at msn.com.au> wrote in message 
> news:g038l7$230k$1 at digitalmars.com...
> > Jarrett Billingsley Wrote:
> >
> >> "Tower Ty" <tytower at hotmail.com.au> wrote in message
> >> news:g02qih$16tn$1 at digitalmars.com...
> >> > tango.core.Exception.IllegalArgumentException: Argument not valid
> >> >
> >> > This message from the compiler is just bloody useless
> >> > Where do you go in a 200 line program?
> >> >
> >> > All I can see is go to each line that might be a cause and comment it 
> >> > out
> >> > ,try to compile it again and if no good do the next one .
> >> >
> >> > Some lines just can't be done anyway .
> >> >
> >> > How hard could it be for you experts to add some detail to the error 
> >> > huh
> >> > ??
> >>
> >> Is this a *compiler* error?  Are you *sure*?
> >>
> >> Do you get the error when you compile the program or when you run it?
> >>
> >>
> > No of course it is a run time error and I'm still looking for it , Jarrett 
> > sorry
> 
> Yea, that's kind of a problem with getting uncaught exceptions in the 
> abscence of the stack traces that reflection allows. Be glad it's such a 
> small program.
> 
> What I recommend doing is either step through it in a debugger (if you have 
> one set up), or use debugging output statements.
> 
> If you're not familiar with the trick of debugging output statements, it's 
> like this: Start with main() and sprinkle normal output statements through 
> it. For instance, if your main() is like this:
> 
> void main()
> {
>    someFunc();
>    if(something)
>        doSomething();
>    anotherFunc();
>    yetAnotherFunc();
> }
> 
> Then do this:
> 
> void main()
> {
> Stdout("1").newline;
>    someFunc();
> Stdout("2").newline;
>    if(something)
>    {
> Stdout("3").newline;
>        doSomething();
> Stdout("4").newline;
>    }
> Stdout("5").newline;
>    anotherFunc();
> Stdout("6").newline;
>    yetAnotherFunc();
> Stdout("7").newline;
> }
> 
> Obviously, copy/paste helps there ;) Run that and you'll get something like:
> 
> 1
> 2
> 5
> tango.core.Exception.IllegalArgumentException: Argument not valid
> 
> In this case, we know the if() ended up false and "doSomething()" was 
> skipped, and we also know the exception was thrown somewhere in 
> "anotherFunc()". So rip those "Stdout's" out of there, and do the same thing 
> in "anotherFunc()". Keep drilling down like that until you find the problem.
> 
> I do that all the time in my own code (because so far I've been too lazy to 
> actually get a debugger set up with D :) ).
> 
> 
Thanks



More information about the Digitalmars-d mailing list