Bob Sneidar wrote:

>> On Nov 20, 2014, at 08:26 , Richard Gaskin wrote:
>>
>> Bob Sneidar wrote:
>>
>> > In FoxPro you could simply create a handler which got triggered by
>> > errors then check an internal code for what the most recent error
>> > was, then make a switch statement to handle all the pertinent
>> >errors for your project.
...
>> That's pretty much what LiveCode offers with the errorDialog message.
>
> Oh cool! I asked this same thing years ago, and got back from
> everyone, “Just use try/catch.”

Try/catch is also useful, but for different purposes.

Sometimes try/catch is necessary, since the engine isn't yet smart enough with some commands to be able to attempt an operation and fail gracefully if it doesn't work out.

For example, if you try to open a file that doesn't exist, you can just check "the result" after your "open file" statement and you'll know whether it worked out or not.

But as an example of a more immediate-fail condition, if you try to decompress non-compressed data you'll never get a chance to check "the result" because that particular operation will always throw a script error the moment it fails.

With those immediate-thrown-error operations try/catch can be useful because it causes the engine to bypass the normal throwing of the error message so that you can catch it and handle it more gracefully.

The errorDialog is what's sent in those conditions, so while it can be very useful for providing feedback to the user, it can't help you recover the operation - at that point graceful degradation is no longer an option, since the engine has already determined that normal operation is beyond its abilities, and the best it can do is report the error condition and exit the routine.

Try/catch can be more work to handle, but in some contexts may provide the opportunity for graceful degradation not otherwise possible if the error wasn't caught there.

It may be helpful to think of try/catch as an alternative to errorDialog, for those cases where you're in a position to provide more graceful alternatives for the user than simply halting execution.

--
 Richard Gaskin
 Fourth World Systems
 Software Design and Development for the Desktop, Mobile, and the Web
 ____________________________________________________________________
 ambassa...@fourthworld.com                http://www.FourthWorld.com

_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to