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