AbortProtect
AbortProtect[expr]
计算 expr,保存发生在计算完成之前的任何异常中止.
更多信息
- AbortProtect 的执行一结束,在 AbortProtect 执行期间生成的中止就会开始生效.
- CheckAbort 可以在 AbortProtect 内部使用来捕捉和吸收所发生的任何中止. »
- AbortProtect 也能阻止由 TimeConstrained 和 MemoryConstrained 生成的中止.
范例
打开所有单元 关闭所有单元基本范例 (2)
AbortProtect[Abort[];Print[a]];Print[b]使用 AbortProtect 确保赋值进行:
AbortProtect[x = (3;Abort[];4)]尽管计算返回 $Aborted,但 x 被赋予该计算的值:
x如果不使用 AbortProtect,则不会有该赋值:
y = (3;Abort[];4)y范围 (1)
TimeConstrained[x = 1 / 10;Do[AbortProtect[imax = i;x = 4 x(1 - x)], {i, 1000000}], 1];{imax, N[x]}没有 AbortProtect,通常 imax 被更新,而不是 x:
Table[TimeConstrained[x = 1 / 10;Do[imax = i;x = 4 x(1 - x), {i, 1000000}], .5];
{imax, N[x]}, {4}]属性和关系 (5)
即使包含在 AbortProtect 中,CheckAbort 也会启用并检测中止:
AbortProtect[
CheckAbort[Echo["before"];Abort[];Echo["after"],
Echo["check"]]]当 CheckAbort 内部的计算终止时,AbortProtect 运行完成:
AbortProtect[
CheckAbort[Echo["before"];Abort[];Echo["after"],
Echo["check"]];Echo["past CheckAbort"]]封闭的 AbortProtect 会被 TimeConstrained 覆写:
AbsoluteTiming[AbortProtect[TimeConstrained[Pause[3];Echo["eval"], .1, Echo["constraint"]]]]当 TimeConstrained 中的代码终止时,AbortProtect 运行完成:
AbsoluteTiming[AbortProtect[TimeConstrained[Pause[3];Echo["eval"], .1, Echo["constraint"]];Echo["past TimeConstrained"]]]内嵌的 AbortProtect 可阻止 TimeConstrained 的操作:
AbsoluteTiming[TimeConstrained[AbortProtect[Pause[3];Echo["eval"]], .1, Echo["constraint"]]]封闭的 AbortProtect 会被 MemoryConstrained 覆写:
AbortProtect[MemoryConstrained[RandomReal[1, 10^5];Echo["eval"], 10^4, Echo["constraint"]]]当 MemoryConstrained 中的代码终止时,AbortProtect 运行完成:
AbortProtect[MemoryConstrained[RandomReal[1, 10 ^ 5];Echo["eval"], 10^4, Echo["constraint"]];Echo["past MemoryConstrained"]]内嵌的 AbortProtect 可阻止 MemoryConstrained 的操作:
MemoryConstrained[AbortProtect[x = Range[10^4];Echo["eval"]], 10^2, Echo["constraint"]]历史
1991年引入 (2.0)
文本
Wolfram Research (1991),AbortProtect,Wolfram 语言函数,https://reference.wolfram.com/language/ref/AbortProtect.html.
CMS
Wolfram 语言. 1991. "AbortProtect." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/AbortProtect.html.
APA
Wolfram 语言. (1991). AbortProtect. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/AbortProtect.html 年
BibTeX
@misc{reference.wolfram_2026_abortprotect, author="Wolfram Research", title="{AbortProtect}", year="1991", howpublished="\url{https://reference.wolfram.com/language/ref/AbortProtect.html}", note=[Accessed: 15-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_abortprotect, organization={Wolfram Research}, title={AbortProtect}, year={1991}, url={https://reference.wolfram.com/language/ref/AbortProtect.html}, note=[Accessed: 15-August-2026]}