MLError (C 函数)

MLError 已经被 WSError 所取代.

int MLError(MLINK link)

返回一个值,确定发生在 link 中的最后一个错误. 如果自上次调用 WLClearError() 之后,没有发生错误,MLError() 返回 WLEOK.

更多信息

  • 通过调用 WLErrorMessage() ,可以获取错误的文本描述.
  • MLError() 可以返回以下值:
  • MLEOK一切正常
    MLEDEAD链接死了
    MLEGBAD不一致的数据读取
    MLEGSEQ失序调用 MLGet() 函数
    MLEPBTKMLPutNext() 传递一个坏的令牌
    MLEPSEQ失序调用 MLPut() 函数
    MLEPBIGMLPutData() 给予太多数据
    MLEOVFL机器数溢出
    MLEMEM内存不足
    MLEACCEPT接受 socket 连接失败
    MLECONNECT延迟的连接仍然未连接
    MLEPUTENDPACKET意外或错过 WLEndPacket() 的调用
    MLENEXTPACKET当当前数据包具有未读取数据时调用 MLNextPacket()
    MLEUNKNOWNPACKETMLNextPacket() 读取一个未知数据包标头
    MLEGETENDPACKET意外结束数据包
    MLEABORT影响链接前中止 put 或 get
    MLECLOSED链接的另一端关闭了链接(你可能仍然收到未分发的数据)
    MLEINITMathLink 环境没有被初始化
    MLEARGV没有足够的自变量打开链接
    MLEPROTOCOL没有可用协议
    MLEMODE没有可用模式
    MLELAUNCH启动不支持
    MLELAUNCHAGAIN不能从同一文件中再次启动程序
    MLELAUNCHSPACE没有足够的空间启动程序
    MLENOPARENT没有可用的父连接
    MLENAMETAKEN链接名称已被使用
    MLENOLISTEN找到的链接名称没有被监听
    MLEBADNAME链接名称被丢失或形式不合适
    MLEBADHOST位置不可访问或形式不合适
    MLELAUNCHFAILED程序未能启动,因为缺少资源或程序库
    MLELAUNCHNAME启动失败,因为没有找到程序
    MLEPSCONVERT不能从给定的字符编码转换成链接编码
    MLEGSCONVERT不能从链接编码转换成要求的编码
    MLEPDATABAD给定编码的字符数据不正确
  • MLError() 在 MathLink 的标头文件 mathlink.h 中被声明.

范例

基本范例  (1)

#include "mathlink.h"

/* send the integer 10 to a link */

void f(MLINK lp)
{
    if(! MLPutInteger(lp, 10))
    {
        /* check the possible errors */
        switch(MLError(lp))
        {
            case MLEDEAD:
                /* the link died unexpectedly */
                break;
            case MLECLOSED:
                /* the other side closed the link */
                break;
            case MLEOK:
                /* no error occurred */
                break;
            default:
                /* ... */
        }
    }
}