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