错误和中断处理

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

intMLError(MLINK link)返回一个表面当前错误的数,无错误时返回
char*MLErrorMessage(MLINK link)返回一个描述当前错误的字符串
int MLClearError(MLINK link)清除当前错误,可能时让 MathLink 返回活动状态

MathLink 程序中的错误处理.

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

int MLNewPacket(MLINK link)跳到当前包的结尾

清除一个包的剩余部分.

发生错误后,一般要放弃当前处理的包或表达式的剩余部分,这可以用 MLNewPacket()来实现.

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

intMLAbort当给由 Install 安装的程序送一个放弃中断时设置的全局变量

放弃外部程序.

在执行一个外部函数的过程中中断 Mathematica 时,这一般就是放弃该外部函数的机会. 如果放弃,那么全局变量MLAbort 在该外部程序内就被设为 .

MathLink 无法自动退出给定的外部函数调用. 所以,当一个函数运行时间很长时,应该经常检查 MLAbort,发现这个变量被设置后就从该函数返回.

New to Mathematica? Find your learning path »
Have a question? Ask support »