CheckAbort
CheckAbort[expr,failexpr]
计算 expr,如果发生一个异常结束,则返回 failexpr.
更多信息和选项
- 默认情况下,CheckAbort 会吸收其处理的任何用户中止(包括对 Abort[] 的调用),并且不会进一步传播它们.
- 关于 CheckAbort 是否吸收其处理的中止,可以通过选项 PropagateAborts 来改变,其设置如下:
-
Automatic 传播用户发起的中止以外的中止(包括对 Abort[] 的调用) True 传播所有中止 False 不传播任何中止 - CheckAbort 在 AbortProtect 内部工作. »
- CheckAbort 具有属性 HoldAll.
范例
打开所有单元关闭所有单元范围 (3)
在 AbortProtect 内使用 CheckAbort 来检测中止:
使用 PropagateAborts 控制在 CheckAbort 之后中止是继续还是终止:
在 TimeConstrained 内使用 CheckAbort 可选择在达到限制时跳过哪些部分:
MemoryConstrained 也可以做同样的事:
选项 (2)
PropagateAborts (2)
默认设置 Automatic 不在 CheckAbort 外部传播用户发起的中止:
使用设置 PropagateAbortsTrue 可强制中止持续到 CheckAbort 之后:
TimeConstrained 创建的中止默认会被传播:
使用设置 PropagateAbortsFalse 可阻止中止持续:
MemoryConstrained 创建的中止也类似:
属性和关系 (5)
该参数被有效地封装在 AbortProtect 中:
CheckAbort 即使在包含在 AbortProtect 中的情况下也会启用并检测中止:
虽然在 CheckAbort 内部的计算被终止,AbortProtect 可运行到完成:
嵌套的 AbortProtect 将延迟中止,但不能阻止其被 CheckAbort 检测到:
如果在 CheckAbort 开始时有中止已经激活,则第一个参数将不会被计算:
CheckAbort 可用于在计算被中断时进行清理运行:
即使对于产生中止的输入,$myFlag 也会被设置为 False:
WithCleanup 以显著较少的代码达到相同目的:
文本
Wolfram Research (1991),CheckAbort,Wolfram 语言函数,https://reference.wolfram.com/language/ref/CheckAbort.html (更新于 2022 年).
CMS
Wolfram 语言. 1991. "CheckAbort." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2022. https://reference.wolfram.com/language/ref/CheckAbort.html.
APA
Wolfram 语言. (1991). CheckAbort. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/CheckAbort.html 年