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

2.12.13 高级专题:错误和中断处理

MathLink 存放数据时,会出现各种错误. 任何错误出现时, MathLink 就进入一个完整静止的状态,所有的 MathLink 函数立即返回 0.

MathLink 程序中的错误处理

在进行复杂运算时,仅在末尾检查错误通常是方便的.当发现有错误时, 必须用 MLClearError() 去重新激活 MathLink.

清除一个包的剩余部分

发生错误后,一般要放弃当前处理的包或表达式的剩余部分,这可以用 MLNewPacket() 来实现.
在处理某些数据时出现错误后,随后还有可能用不同的方式重新处理这些数据. 达到这一要求的过程是先调用 MLCreateMark() 在第一次处理数据之前产生一个 标记,再调用 MLSeekMark() 在重新处理数据时找出这些标记. 但不能忘 记在这些数据处理完成后调用 MLDestroyMark(),否则 MathLink 将一直 保存着它.

放弃外部程序

在执行一个外部函数的过程中中断 Mathematica 时,这一般就是放弃 该外部函数的机会. 如果放弃,那么全局变量 MLAbort 在该外部程序内就被设为 1.
MathLink 无法自动退出给定的外部函数调用. 所以,当一个函数运行 时间很长时,应该经常检查 MLAbort,发现这个变量被设置后就从该函数返回.