2.5.13 高级专题:中断与退出1.3.7 节中叙述了按某些键来中断 Mathematica 的计算.有时需要在程序中模拟 使用这一方法,一般地,执行 Interrupt[ ] 与按中断键有相同的使用, 如1.3.12 节中所述,在某些系统中会在屏幕上出现一个选择菜单. 中断与退出 函数 Abort[ ] 在中断计算时与在中断菜单中选退出项的效果相同. 可以用 Abort[ ] 在程序中立即中断,但在几乎所有的情况下,最好使用 Return 和 Throw, 它们产生的结果容易控制. Abort 终止了计算,仅第一个 Print 被执行
Out[1]= |  |
在计算表达式的过程的任何点中断了计算以后,Mathematica 将放弃对个表达式的计算, 返回值为 $Aborted. 但可以使用 CheckAbort 函数去捕获中断,如果在 CheckAbort[expr, failexpr] 计算过程中中断,CheckAbort 函数的返回值为 ,且中断不再扩大. Dialog 等函数这样使用CheckAbort 以包含中断的影响. CheckAbort 捕获中断,显示 c,返回值为 aborted
Out[2]= |  |
Abort 的效果包含在 CheckAbort 中,所以显示 b
在复杂的程序中,有时需程序中的某一部分不发生中断.函数 AbortProtect 可以使计算一直进行下去,而将计算过程中的中断保存到 表达式计算结束. Abort 一直保存到 AbortProtect 完成
Out[4]= |  |
AbortProtect 看见中断,但使中断不再继续扩大
即使在 AbortProtect 之内,CheckAbort 将发现任何中断,并返回到一个合适的 failexpr, 当这个 failexpr 本身不包含 Abort[ ] 时,中断就会被 CheckAbort 所 "吸收".
|