OK, so what's going on here.

I'm trying to put a little error handling around my application. If it 
fails, I need it to send out an alarm. But, depending on the statement, 
I get an error when trying to trap the error.

For example, this works as expected:

 >> If Error? Fred: Try [ 1 / 0 ] [ Print "Whatever!" ]
Whatever!

As does this:

 >> If Error? Fred: Try [ 1 / 1 ] [ Print "Whatever!" ]
== none

This too:

 >> If Error? Fred: Try [ Print ] [ Print "Whatever!" ]
Whatever!

But this doesn't:

 >> If Error? Fred: Try [ Print "Get a grip!" ] [ Print "Whatever!" ]
Get a grip!
** Script Error: Fred needs a value
** Near: If Error? Fred: Try [Print "Get a grip!"]

This is confusing because why should I get an error on something that 
doesn't and shouldn't cause an error.


This works, of course:

 >> If Error? Fred: Try [ x: 1 ] [ Print "Whatever!" ]
== none

And this:

 >> If Error? Fred: Try [ x: 1 / 0 ] [ Print "Whatever!" ]
Whatever!

And so do these:

 >> If Error? Fred: Try [ Do [ 1 / 0 ] ] [ Print "Whatever!" ]
Whatever!

 >> If Error? Fred: Try [ Do [ 1 / 1 ] ] [ Print "Whatever!" ]
== none

What's perplexing about the previous two is that it is a "Do" statement 
that I am trying to execute and trap. Instead of functioning as above, 
it blows up and gives me the "needs a value error".

And curiously, not only does Print fail, but so does Write. And that is 
a function that I need error trapping on, if ever there was one.

 >> If Error? Fred: Try [ Write %Temp.txt "Yup!" ] [ Print "Whatever!" ]
** Script Error: Fred needs a value
** Near: If Error? Fred: Try [Write %Temp.txt "Yup!"]

I've even tried disarming the error, but to no avail:

>> If Error? Fred: Try [ Write %Temp.txt "Yup!" ] [ Print "Whatever!" ] Disarm Fred
** Script Error: Fred needs a value
** Near: If Error? Fred: Try [Write %Temp.txt "Yup!"]

So what gives? Is this some subtle intricacy of the language, a bug, or my normal 
state of confusion?

-- 
Sincerely,         | Mud can make you prisoner, and the plains can bake
Ed Dana            | you dry. Snow can burn your eyes, but only people 
Software Developer | make you cry.
1Ghz Athlon Amiga  |   -- Lee Marvin, Paint Your Wagon.
=========== http://OurWorld.CompuServe.com/Homepages/EDanaII ===========



-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.

Reply via email to