Exceptions
The Exception structure
struct Exception
bool error
Array msg
end
The global exception value (named _cal_exception) uses this structure. If error is
non-zero, then an exception has been thrown. msg contains the exception message.
error attribute
Functions need the error attribute to be able to throw. To add this attribute, write
error after func. Functions with the error attribute also won't crash if an
exception happens inside the function, instead it throws it to the caller.
throw
To throw an exception, use throw. It takes an Array* parameter which is the exception
message.
Example
func error foo begin
"This is an exception" throw
end
Try/catch
You can use a try/catch statement to catch exceptions. It has this syntax:
try FUNCTION
catch
...
end
This statement calls FUNCTION, and if it throws then it runs the catch block.