Interrupts and Aborts
described how you can interrupt a Mathematica
computation by pressing appropriate keys on your keyboard.
In some cases, you may want to simulate such interrupts from within a Mathematica
program. In general, executing Interrupt
has the same effect as pressing interrupt keys. On a typical system, a menu of options is displayed, as discussed in "Interrupting Calculations"
|Interrupt||interrupt a computation|
|Abort||abort a computation|
|CheckAbort[expr,failexpr]||evaluate expr and return the result, or failexpr if an abort occurs|
|AbortProtect[expr]||evaluate expr, masking the effect of aborts until the evaluation is complete|
Interrupts and aborts.
The function Abort
has the same effect as interrupting a computation, and selecting the abort
option in the interrupt menu.
You can use Abort
to implement an "emergency stop" in a program. In almost all cases, however, you should try to use functions like Return
, which lead to more controlled behavior.
terminates the computation, so only the first Print
If you abort at any point during the evaluation of a Mathematica
normally abandons the evaluation of the whole expression, and returns the value $Aborted
You can, however, "catch" aborts using the function CheckAbort
. If an abort occurs during the evaluation of expr
in CheckAbort[expr, failexpr]
, then CheckAbort
, but the abort propagates no further. Functions like Dialog
in this way to contain the effect of aborts.
catches the abort, prints c
and returns the value aborted
When you construct sophisticated programs in Mathematica
, you may sometimes want to guarantee that a particular section of code in a program cannot be aborted, either interactively or by calling Abort
. The function AbortProtect
allows you to evaluate an expression, saving up any aborts until after the evaluation of the expression is complete.
sees the abort, but does not propagate it further.
Even inside AbortProtect
will see any aborts that occur, and will return the appropriate failexpr
. Unless this failexpr
itself contains Abort
, the aborts will be "absorbed" by the CheckAbort