Конструкция
try...catch...end
В MATLAB 6
введена новая конструкция блока вывода ошибок try...catch...end:
try.
Список
инструкций
Список
инструкций catch.
Список
инструкций
...
Список
инструкций
end
Эта конструкция
выполняет все списки инструкций. Если в каком-то списке до оператора catch появляется
ошибка, то выводится сообщение об ошибке, но системная переменная последней
ошибки lasterr не меняется. В сообщениях после catch сообщения об ошибке не
выводятся.
В следующем
примере задано появление ошибки (переменная ааа не определена), после чего выполняется
блок try...catch...end:
ааа
???
Undefined function or variable 'ааа'.
try
2+3:
3+4:
2/0:
catch
4+5:
end:
Warning:
Divide by zero.
»lasterr ans = Undefined function or variable 'aaa'.
Обратите внимание,
что в конце блока команда lasterr выводит ее начальное значение. А в другом
примере ошибка задана в блоке try...catch...end уже после оператора catch:
»
try
2+3:
3+4;
4+5:
catch
5/0:
end:
»
lasterr
ans
= Undefined function or variable 'aaa'.
Как нетрудно
заметить, на этот раз ошибка в вычислении 5/0 не выводится, а значение lasterr
осталось тем, что было изначально.
Содержание раздела