traperror (and variable lasterror)
trap an error condition
Calling Sequence
Parameters
Description
Thread Safety
Examples
traperror(expr1, expr2, ...)
expr1, expr2, ...
-
any expressions
Important: The command traperror and the variable lasterror have been deprecated. Use the superseding construct try...catch...end try to trap errors instead. The variable lastexception supercedes lasterror.
The traperror command sets an error trap prior to evaluating its arguments. If an error occurs either during evaluation or during simplification, traperror returns the name, string, or expression sequence corresponding to the error message of the first error occurring. Each call to traperror clears the lasterror variable before executing.
Otherwise, it simply returns its simplified evaluated arguments.
The most recently occurring error is stored in the variable lasterror. This variable can be manipulated as any other variable. The lasterror variable is useful for checking the results of traperror as in the following.
if⁢⁢traperror⁡...=lasterror⁢⁢then...
Note: The traperror command and the lasterror variable must appear in this order.
The following errors cannot be trapped, because they are not something from which a Maple program can reasonably recover.
interrupted
assertion failed
stack overflow
object too large
out of memory
The time expired error, which is generated when the time limit set by the timelimit function expires, can be trapped only outside the call to timelimit.
The time expired error is not caught by traperror within a computation being carried out under a time limit. This allows you to time-limit a computation that uses traperror.
The traperror (and variable lasterror) command is thread-safe as of Maple 15.
For more information on thread safety, see index/threadsafe.
Important: The command traperror and the variable lasterror have been deprecated. Use the superseding construct try...catch...end try to trap errors instead.
f≔u↦u2−1u−1
printlevel≔3:
forxin0,1,2dor≔traperror⁡f⁡x;ifr=lasterrorthenifr=`division by zero`thenr≔limit⁡f⁡u,u=xelseerrorendifendif;lprint⁡`Result: x =`,x,`f(x) =`,renddo
`Result: x =`, 0, `f(x) =`, 1
Error, numeric exception: division by zero
See Also
error
stoperror
try
Download Help Document