此为 Mathematica 4 文档,内容基于更早版本的 Wolfram 语言
查看最新文档(版本11.1)

2.5.13 高级专题:中断与退出

1.3.7 节中叙述了按某些键来中断 Mathematica 的计算.有时需要在程序中模拟 使用这一方法,一般地,执行 Interrupt[ ] 与按中断键有相同的使用, 如1.3.12 节中所述,在某些系统中会在屏幕上出现一个选择菜单.

中断与退出

函数 Abort[ ] 在中断计算时与在中断菜单中选退出项的效果相同. 可以用 Abort[ ] 在程序中立即中断,但在几乎所有的情况下,最好使用 ReturnThrow, 它们产生的结果容易控制.

Abort 终止了计算,仅第一个 Print 被执行

在计算表达式的过程的任何点中断了计算以后,Mathematica 将放弃对个表达式的计算, 返回值为 $Aborted. 但可以使用 CheckAbort 函数去捕获中断,如果在 CheckAbort[expr, failexpr] 计算过程中中断,CheckAbort 函数的返回值为  ,且中断不再扩大. Dialog 等函数这样使用CheckAbort 以包含中断的影响.

CheckAbort 捕获中断,显示 c,返回值为 aborted

Abort 的效果包含在 CheckAbort 中,所以显示 b

在复杂的程序中,有时需程序中的某一部分不发生中断.函数 AbortProtect 可以使计算一直进行下去,而将计算过程中的中断保存到 表达式计算结束.

Abort 一直保存到 AbortProtect 完成

AbortProtect 看见中断,但使中断不再继续扩大

即使在 AbortProtect 之内,CheckAbort 将发现任何中断,并返回到一个合适的 failexpr, 当这个 failexpr 本身不包含 Abort[ ] 时,中断就会被 CheckAbort 所 "吸收".