ошибка

Выдайте сообщение отображения и ошибка

Синтаксис

error(msg)
error(msg,A1,...,An)
error(msgID,___)
error(errorStruct)

Описание

пример

error(msg) выдает ошибку и отображает сообщение об ошибке.

error(msg,A1,...,An) отображает сообщение об ошибке, которое содержит символы преобразования форматирования, такие как используемые с функцией MATLAB® sprintf. Каждый символ преобразования в msg преобразован в одно из значений A1,...,An.

error(msgID,___) включает ошибочный идентификатор на исключении. Идентификатор позволяет вам отличить ошибки и управлять тем, что происходит, когда MATLAB сталкивается с ошибками. Можно включать любой из входных параметров в предыдущих синтаксисах.

пример

error(errorStruct) выдает ошибку поля в скалярной структуре.

Примеры

свернуть все

msg = 'Error occurred.';
error(msg)
Error occurred.

Выдайте отформатированное сообщение об ошибке с разрывом строки. Необходимо задать больше чем один входной параметр с error, если вы хотите, чтобы MATLAB преобразовал специальные символы (такие как \n) в сообщении об ошибке. Включайте информацию о классе переменного n в сообщении об ошибке.

n = 7;
if ~ischar(n)
   error('Error. \nInput must be a char, not a %s.',class(n))
end
Error.
Input must be a char, not a double.

Если вы только используете один входной параметр с error, то MATLAB не преобразовывает \n в разрыв строки.

if ~ischar(n)
   error('Error. \nInput must be a char.')
end
Error. \nInput must be a char.

Выдайте ошибку с идентификатором.

if ~ischar(n)
   error('MyComponent:incorrectType',...
       'Error. \nInput must be a char, not a %s.',class(n))
end
Error.
Input must be a char, not a double.

Используйте MException.last, чтобы просмотреть последнее неперехваченное исключение.

exception = MException.last
exception = 

  MException with properties:

    identifier: 'MyComponent:incorrectType'
       message: 'Error. 
Input must be a char, not a double.'
         cause: {0x1 cell}
         stack: [0x1 struct]

Создайте структуру с полями идентификатора и сообщением. Чтобы сохранить пример простым, не используйте поле стека.

errorStruct.message = 'Data file not found.';
errorStruct.identifier = 'MyFunction:fileNotFound';
errorStruct = 

       message: 'Data file not found.'
    identifier: 'MyFunction:fileNotFound'

Выдайте ошибку.

error(errorStruct)
Data file not found.

Входные параметры

свернуть все

Информация об ошибке, заданной как вектор символа или скаляр строки. Это индикаторы сообщения как сообщение об ошибке. Чтобы отформатировать сообщение, используйте escape-последовательности, такие как \t или \n. Также можно использовать любые спецификаторы формата, поддержанные функцией sprintf, такие как %s или %d. Задайте значения для спецификаторов преобразования через входные параметры A1,...,An. Для получения дополнительной информации см. текст Форматирования.

Примечание

Необходимо задать больше чем один входной параметр с error, если вы хотите, чтобы MATLAB преобразовал специальные символы (такие как \t, \n, %s и %d) в сообщении об ошибке.

Пример: 'Файл, не найденный'.

Идентификатор для ошибки, заданной как вектор символа или скаляр строки. Используйте ошибочный идентификатор, чтобы помочь идентифицировать источник ошибки или управлять выбранным подмножеством ошибок в вашей программе.

Ошибочный идентификатор включает component и mnemonic. Идентификатор должен всегда содержать двоеточие и следует за этим простым форматом: component:mnemonic. Поля component и mnemonic должны каждый начаться с буквы. Оставшиеся символы могут быть буквенно-цифровым индикатором (A–Z, a–z, 0–9) и символы нижнего подчеркивания. Никакие пробельные символы не могут появиться нигде в msgID. Для получения дополнительной информации смотрите Идентификаторы сообщений.

Пример: MATLAB: singularMatrix'

Пример: MATLAB: narginchk: notEnoughInputs'

Значения, которые заменяют спецификаторы преобразования в msg, заданном как вектор символа, представляют в виде строки скаляр или числовой скаляр.

Информация о сообщении об ошибке, заданная как скалярная структура. Структура должна содержать по крайней мере одно из этих полей.

сообщение

Сообщение об ошибке. Для получения дополнительной информации смотрите msg.

identifier

Идентификатор сообщения об ошибке. Для получения дополнительной информации смотрите msgID.

стек

Поле стека для ошибки. Когда errorStruct включает поле stack, error использует его, чтобы установить поле стека ошибки. Когда вы задаете stack, используйте абсолютное имя файла и целую последовательность функций, которая вкладывает функцию в стековом фрейме. Этот вектор символа совпадает с тем, возвращенным dbstack('-completenames').

Советы

  • Когда вы выдаете ошибку, MATLAB получает информацию об этом и хранит ее в структуре данных, которая является объектом класса MException. Можно получить доступ к информации в объекте исключения при помощи try/catch. Или, если ваша программа отключает из-за исключения и возвращает управление в Командную строку, можно использовать MException.last.

  • MATLAB не прекращает выполнение программы, если ошибка происходит в блоке try. В этом случае MATLAB передает управление к блоку catch.

  • Если все входные параметры к error пусты, MATLAB не выдает ошибку.

Расширенные возможности

Массивы GPU
Ускорьте код путем работы графического процессора (GPU) с помощью Параллельных вычислений Toolbox™.

Представлено до R2006a

Была ли эта тема полезной?