Documentation

This is machine translation

Translated by Microsoft
Mouse over text to see original. Click the button below to return to the English verison of the page.

mexErrMsgIdAndTxt (C and Fortran)

Display error message with identifier and return to MATLAB prompt

C Syntax

#include "mex.h"
void mexErrMsgIdAndTxt(const char *errorid, 
  const char *errormsg, ...);

Fortran Syntax

#include "fintrf.h"
subroutine mexErrMsgIdAndTxt(errorid, errormsg)
character*(*) errorid, errormsg

Arguments

errorid

String containing a MATLAB® message identifier. For information on creating identifiers, see Message Identifiers.

errormsg

String to display. In C, the string can include conversion specifications, used by the ANSI® C printf function.

...

In C, any arguments used in the message. Each argument must have a corresponding conversion specification. Refer to your C documentation for printf conversion tables.

Description

The mexErrMsgIdAndTxt function writes an error message to the MATLAB window. For more information, see the error function syntax statement using a message identifier. After the error message prints, MATLAB terminates the MEX file and returns control to the MATLAB prompt.

Calling mexErrMsgIdAndTxt does not clear the MEX file from memory. So, mexErrMsgIdAndTxt does not invoke the function registered through mexAtExit.

If your application called mxCalloc or one of the mxCreate* routines to allocate memory, mexErrMsgIdAndTxt automatically frees the allocated memory.

    Note   If you get warnings when using mexErrMsgIdAndTxt, you might have a memory management compatibility problem. For more information, see Memory Management Issues.

Remarks

In addition to the errorid and errormsg, the mexErrMsgIdAndTxt function determines where the error occurred, and displays the following information. For example, in the function foo, mexErrMsgIdAndTxt displays:

Error using foo

If you compile your MEX file with the MinGW-w64 compiler, see the limitations with exception handling topic in Troubleshooting and Limitations Compiling C/C++ MEX Files with MinGW-w64.

Examples

See the following examples in matlabroot/extern/examples/refbook.

Validate char Input

The following code snippet checks if input argument, prhs[0], is a string. If not, the code displays a warning. If there is an error reading the input string, the code displays an error message and terminates the MEX file.

char *buf;
int buflen;

if (mxIsChar(prhs[0])) {
    if (mxGetString(prhs[0], buf, buflen) == 0) {
        mexPrintf("The input string is:  %s\n", buf);
    }
    else { 
        mexErrMsgIdAndTxt("MyProg:ConvertString",
           "Could not convert string data.");
        // exit MEX file
    } 
}
else {
    mexWarnMsgIdAndTxt("MyProg:InputString",
        "Input should be a string to print properly.");
}

// continue with processing

Introduced before R2006a

Was this topic helpful?