Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
However, this page did not exist in the previous stable version.
errcatch
перехват ошибок
Последовательность вызова
errcatch(n [,'action'] [,'option']) errcatch()
Аргументы
- n
целое число
- action, option
строковые значения
Описание
errcatch
указывает действие "action"
(реакцию на ошибку), которое будет выполнено в случае возникновения ошибки типа
n
.
n
имеет следующие значения:
если n
>0
, то n
является номером ошибки, которую
требуется перехватить;
если n
<0
, то будут перехватываться все ошибки.
action
может быть одной из следующих символьных строк:
- "pause"
пауза, выполняемая во время перехвата ошибки. Эта опция полезна в целях отладки. Используйте
whereami()
для получения информации о текущем контексте.- "continue"
будет выполняться следующая инструкция в функции либо будут исполнены исполняемые файлы, текущие инструкции будут игнорироваться. Можно проверить произошла ли ошибка с помощью функции iserror. Не забудьте очистить ошибку с помощью функции errclear как можно скорее. Эта опция полезна для обнаружения ошибок. Во многих случаях использование
errcatch(n,"continue",..)
может быть заменено использованием функции execstr или структуры управления try.- "kill"
режим по умолчанию; все промежуточные функции уничтожаются, Scilab возвращается на уровень 0 командной строки.
- "stop"
прерывает текущую сессию 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 не будет существовать
Смотрите также
Report an issue | ||
<< Управление ошибками | Управление ошибками | errclear >> |