主要内容

mexrmsgidandtxt (C和Fortran语言)

显示带有标识符的错误消息并返回到MATLAB提示

C语法

#include " mexm .h" void merrrmsgidandtxt (const char *errorid, const char *errormsg,…);

Fortran语言的语法

#包含"fintrf.h"子例程merrrmsgidandtxt (errorid, errormsg)字符*(*)errorid, errormsg

参数

errorid

包含MATLAB的字符串®消息标识符。有关创建标识符的信息,请参见MException

errormsg

字符串,指定为const char *用C或字符* (*)在Fortran。在C语言中,该函数支持UTF-8或本地万博1manbetx代码页(LCP)编码,并且字符串可以包括转换规范ANSI®Cprintf函数。消息文本和转换参数的编码必须相同。

...

在C语言中,消息中使用的任何参数。每个参数必须有相应的转换规范。请参阅您的C文档printf转换表。

描述

mexErrMsgIdAndTxt函数将错误信息写入MATLAB窗口。有关更多信息,请参见错误使用消息标识符的函数语法语句。打印错误消息后,MATLAB终止MEX文件并将控制权返回给MATLAB提示符。

调用mexErrMsgIdAndTxt不会从内存中清除MEX文件。所以,mexErrMsgIdAndTxt不调用通过注册的函数mexAtExit

如果你的应用程序调用mxCalloc或者其中一个mxCreate*例程分配内存,mexErrMsgIdAndTxt自动释放分配的内存。

请注意

如果你在使用时得到警告mexErrMsgIdAndTxt,您可能有内存管理兼容性问题。有关更多信息,请参见内存管理问题

讲话

除了errorid而且errormsg,mexErrMsgIdAndTxt函数确定错误发生的位置,并显示以下信息。例如,在函数中喷火mexErrMsgIdAndTxt显示:

使用foo出错

如果使用MinGW-w64编译器编译MEX文件,请参阅中的异常处理主题的限制用MinGW-w64编译C/ c++ MEX文件的故障排除和限制

例子

请参阅matlabroot走读生/ / refbook例子

验证字符输入

下面的代码片段检查输入参数,prhs [0],是字符串。如果不是,代码将显示一个警告。如果读取输入字符串时出现错误,代码将显示错误消息并终止MEX文件。

char *缓冲区;int buflen;//初始化变量if (mxIsChar(prhs[0])) {if (mxGetString(prhs[0], buf, buflen) == 0) {mexPrintf("输入字符串是:%s\n", buf);} else {mmyrmsgidandtxt ("MyProg:ConvertString", "不能转换字符串数据。");// exit MEX文件}}else {mexWarnMsgIdAndTxt("MyProg:InputString", "Input应该是一个字符串以正确打印。");} //继续处理
R2006a之前介绍