Предупреждения о проблемах и ошибки

Предупреждения о проблемах

Можно выдать предупреждение, чтобы отметить неожиданные условия, обнаруженные при выполнении программы. Функция warning распечатывает предупреждающее сообщение к командной строке. Предупреждения отличаются от ошибок двумя значительными способами:

  • Предупреждения не останавливают осуществление программы.

  • Можно подавить любые бесполезные предупреждения MATLAB®.

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

warning('Input must be text')

Например, можно вставить предупреждение в код, чтобы проверить версию программного обеспечения:

function warningExample1
  if ~strncmp(version, '7', 1)
    warning('You are using a version other than v7')
  end

Бросок ошибок

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

Например, предположите, что вы создаете функцию, которая возвращает количество комбинаций элементов k от элементов n. Такая функция бессмысленна если k > n; вы не можете выбрать 8 элементов, если вы запускаете со всего 4. Необходимо соединиться, этот факт в функцию, чтобы позволить любому использующему combinations знают о проблеме:

function com = combinations(n,k)
    if k > n
        error('Cannot calculate with given values')
    end
    com = factorial(n)/(factorial(k)*factorial(n-k));
end

Если функция combinations получает недопустимый вход, выполнение остановок MATLAB сразу после броска сообщения об ошибке:

combinations(4,8)
Error using combinations (line 3)
Cannot calculate with given values

Добавление параметров периода выполнения к предупреждениям и ошибкам

Чтобы сделать ваши предупреждающие сообщения или сообщения об ошибке более конкретными, вставьте компоненты сообщения во время выполнения. Функция warning использует символы преобразования, которые совпадают с используемыми функцией sprintf. Действие символов преобразования как заполнители для подстрок или значений, неизвестных, пока, код не выполняется.

Например, это предупреждение использует %s и %d, чтобы отметить, где вставить значения переменных arrayname и arraydims:

warning('Array %s has %d dimensions.',arrayname,arraydims)
Если вы выполняете эту команду с arrayname = 'A' и arraydims = 3, MATLAB отвечает:
Warning: Array A has 3 dimensions.

Добавление параметров периода выполнения к вашим предупреждениям и ошибкам может разъяснить проблемы в рамках программы. Рассмотрите функциональный combinations от Ошибок Броска. Можно выдать намного более информативную ошибку параметры периода выполнения:

function com = combinations(n,k)
    if k > n
        error('Cannot choose %i from %i elements',k,n)
    end
    com = factorial(n)/(factorial(k)*factorial(n-k));
end
Если эта функция получает недействительные аргументы, MATLAB выдает сообщение об ошибке и останавливает программу:
combinations(6,9)
Error using combinations (line 3)
Cannot choose 9 from 6 elements

Добавление идентификаторов к предупреждениям и ошибкам

Идентификатор сообщения обеспечивает способ исключительно сослаться на предупреждение или ошибку.

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

warning(identifier_text,message_text)

Например, можно добавить тег идентификатора в предыдущее предупреждение MATLAB, о котором запускается версия программного обеспечения:

minver = '7';
if ~strncmp(version,minver,1)
  warning('MYTEST:VERCHK','Running a version other than v%s',minver)
end

Добавление идентификатора к сообщению об ошибке допускает отрицательное тестирование. Однако добавление и восстановление большей информации от ошибок часто требуют работы с объектами MException.

Смотрите также

| | |

Связанные примеры

Больше о

Для просмотра документации необходимо авторизоваться на сайте