Кроме основного назначения - обработки ошибок времени выполнения,
исключения это ещё и способ совершения нелокальных прыжков (нелокального выхода), т. е. передачи управления на некоторую удалённую, возможно заранее неизвестную, точку программы. Вы можете выбросить (throw) исключение и поймать (catch) его из любой вызывающей функции в стеке :
function foo() {
// ...
throw new Error("invalid foo");
}
// ...
try {
foo();
} catch( e : Error ) {
// обработка исключения
}
Можно использовать несколько catch после try для того, чтобы отлавливать разные типы исключений. Они тестируются в порядке, в котором декларированы. Выражение catch( e : Dynamic ) будет отлавливать все исключения :
try {
foo();
} catch( e : String ) {
// обработать этот тип ошибок
} catch( e : Error ) {
// обработать другой тип ошибок
} catch( e : Dynamic ) {
// обработать все остальные ошибки
}
Все выражения try и catch должны иметь один возвращаемый тип, за исключением ситуаций, когда никакого значения не нужно (также как if).