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