mexErrMsgIdAndTxt (C and Fortran)

Отобразите сообщение об ошибке с идентификатором и возвратитесь к подсказке MATLAB

Синтаксис C

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

Синтаксис языка ФОРТРАН

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

Аргументы

errorid

Строка, содержащая MATLAB® идентификатор сообщения. Для получения информации о создании идентификаторов смотрите MException.

errormsg

Представьте в виде строки, чтобы отобразиться в виде const char* в C или character*(*) на Фортране. В C функция поддерживает или UTF-8 или кодирование страницы локального кода (LCP), и строка может включать технические требования преобразования, используемые ANSI® C printf функция. Кодирование и для текста сообщения и для аргументов преобразования должно быть тем же самым.

...

В C любые аргументы используются в сообщении. Каждый аргумент должен иметь соответствующую спецификацию преобразования. Обратитесь к своей документации C для printf таблицы преобразования.

Описание

mexErrMsgIdAndTxt функционируйте пишет сообщение об ошибке в окно MATLAB. Для получения дополнительной информации смотрите error оператор синтаксиса функций с помощью идентификатора сообщения. После печати сообщения об ошибке MATLAB отключает файл MEX и возвращает управление в подсказку MATLAB.

Вызов mexErrMsgIdAndTxt не очищает файл MEX из памяти. Так, mexErrMsgIdAndTxt не вызывает функцию, зарегистрированную через mexAtExit.

Если ваше приложение называется mxCalloc или один из mxCreate* стандартные программы, чтобы выделить память, mexErrMsgIdAndTxt автоматически освобождает выделенную память.

Примечание

Если вы получаете предупреждения при использовании mexErrMsgIdAndTxt, у вас может быть проблема совместимости управления памятью. Для получения дополнительной информации смотрите Проблемы управления памятью.

Комментарии

В дополнение к errorid и errormsg, mexErrMsgIdAndTxt функция определяет, где ошибка произошла и отображает следующую информацию. Например, в функциональном foo, mexErrMsgIdAndTxt отображения:

Error using foo

Если вы компилируете свой файл MEX с компилятором MinGW-w64, смотрите ограничения с темой обработки исключений в Поиске и устранении проблем и Ограничениях при компиляции Файлы MEX C/C++ с MinGW-w64.

Примеры

Смотрите эти примеры в matlabroot/extern/examples/refbook:

Подтвердите char Входной параметр

Следующий фрагмент кода проверяет если входной параметр, prhs[0], строка. В противном случае код выводит предупреждение. Если существует ошибка при чтении входной строки, код отображает сообщение об ошибке и отключает файл MEX.

char *buf;
int buflen;

// initialize variables

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
Представлено до R2006a