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

Выдать предупреждения

Вы можете выдать предупреждение, чтобы отметить неожиданные условия, обнаруженные при запуске программы. 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 объекты.

См. также

| | |

Похожие темы

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