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