перехват ошибок
errcatch(n [,'action'] [,'option']) errcatch()
целое число
строковые значения
errcatch указывает действие "action"
(реакцию на ошибку), которое будет выполнено в случае возникновения ошибки типа
n.
n имеет следующие значения:
если n>0, то n является номером ошибки, которую
требуется перехватить;
если n<0, то будут перехватываться все ошибки.
action может быть одной из следующих символьных строк:
пауза, выполняемая во время перехвата ошибки. Эта опция полезна в целях отладки. Используйте whereami() для получения информации о текущем контексте.
будет выполняться следующая инструкция в функции либо будут исполнены исполняемые
файлы, текущие инструкции будут игнорироваться. Можно проверить произошла ли ошибка с
помощью функции iserror. Не забудьте очистить ошибку с
помощью функции errclear как можно скорее. Эта опция
полезна для обнаружения ошибок. Во многих случаях использование
errcatch(n,"continue",..) может быть заменено использованием
функции execstr или структуры управления
try.
режим по умолчанию; все промежуточные функции уничтожаются, Scilab возвращается на уровень 0 командной строки.
прерывает текущую сессию Scilab (полезна, когда Scilab вызван из внешней программы).
option символьная строка 'nomessage' для уничтожения
сообщения об ошибке.
Для возврата в режим по умолчанию введите errcatch(-1,"kill") или, аналогичное, errcatch(-1). errcatch() является устаревшим эквивалентом для errcatch(-1).
Действия errcatch применимы в контексте текущего выполнения
(function, exec, pause) и всех
подуровней. Второй вызов errcatch на подуровнях скрывает исходный вызов
для этого подуровня. Если второй вызов errcatch сделан на том же самом
уровне, то действие первого вызова удаляется.
При вызове в контексте функции Scilab или exec
errcatch автоматически сбрасывается при выходе из функции.
errcatch(144,"continue") 2/"foo" disp(a) // Без перехвата ошибки эта строка не будет выполнена errcatch(-1,"kill") // Возвращение обратно в нормальный режим errcatch(144,"pause") 2/"foo" // Вход в режим "пауза" errcatch(27,'continue','nomessage') b=2/0 // Сообщения об ошибке нет, но b не будет существовать | ![]() | ![]() |