error trapping
errcatch() errcatch(n, 'pause') errcatch(n, 'continue') errcatch(n, 'kill') errcatch(n, 'stop') errcatch(…, 'nomessage')
integer
errcatch
gives an "action" (error-handler) to be
performed when an error of type n
occurs.
n
has the following meanings:
if n
> 0
, n
is the error number to trap;
if n
<0
all errors are to be trapped.
action
is one of the following character strings:
a pause is executed when trapping the error. This option is
useful for debugging purposes. Use whereami()
to get information
on the current context.
next instruction in the function or exec files is executed,
current instruction is ignored. It is possible to check if an error has occurred
using the iserror function. Do not forget to clear the
error using the errclear function as soon as possible.
This option is useful for error recovery. In many cases, usage of
errcatch(n,"continue",..)
can be replaced by the use of
execstr function or try
control structure.
default mode, all intermediate functions are killed, Scilab goes back to the level 0 prompt.
interrupts the current Scilab session (useful when Scilab is called from an external program).
option
is the character string 'nomessage'
for killing
error message.
To set back default mode, enter errcatch(-1,"kill")
or similarly
errcatch(-1)
. errcatch()
is an obsolete equivalent of errcatch(-1)
.
The errcatch
actions apply to the current evaluation
context (function
, exec
, pause
) and all the sub-levels. A second errcatch
call in a sub-level hides the initial one for this sub-level. If a second errcatch
call is made at the
same level, the effect of the first one is removed.
When called in the context of a Scilab function or exec the errcatch
is automatically reset when the function returns.
errcatch(144,"continue") 2/"foo" disp(a) // Without the errcatch, this line would not be executed errcatch(-1,"kill") // Come back in the normal mode errcatch(144,"pause") 2/"foo" // Enter in "pause" mode errcatch(27,'continue','nomessage') b=2/0 // No error message but b will not exist | ![]() | ![]() |
Version | Description |
5.5.2 | errcatch was removed after Scilab 5.5.2. |