Look up "throw" in the dictionary. Apparently you can use it with or without a 
try/catch structure. It's a way to generate an error outside the scope of 
engine generated script errors. 

try
   if not (there is a file 
"/Users/MyProfile/Library/Preferences/MyAppCriticalPreferences.plist") then
      throw "missing_prefs_file"
   end if
catch theError
   answer theError & cr & "I have to quit now."
   quit
end try

I know it works because I just accidentally quit my Livecode session!

This could be used in conjunction with a central error handling user defined 
command or function. Let's say you have a command called "on customError 
pErrorNum". In it you have a switch statement for pErrorNum which handles each 
error differently. Some errors you want to simply inform the user and reset the 
form. Others may be critical ones and you have to bail out gracefully. 

try
   if not (there is a file 
"/Users/MyProfile/Library/Preferences/MyAppCriticalPreferences.plist") then
      throw "missing_prefs_file"
   end if
catch theError
   customError -666
end try

on customError pErrorNum
   switch pErrorNum
      case 666
         put "A critical error has occurred. The application will now exit." 
into theMsg
         put true into isCritical
      case 777
         put "A non-critical error has occurred. Please try again."
         put false into isCritical
   end switch

   answer theMsg as sheet

   if isCritical then
      cleanup -- I am not going to write a fictitious cleanup routine!      
      quit
   end if
end customError

Bob


On Mar 23, 2012, at 10:08 AM, Jim Hurley wrote:

> Mark,
> 
> Yes! I agree with you about "throw". 
> 
> Do you,  or dose anyone, have an example that shows the use of the "throw" 
> command in conjunction with the "try-catch" structure?
> 
> Jim


_______________________________________________
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