Исключения

Кроме основного назначения - обработки ошибок времени выполнения, исключения это ещё и способ совершения нелокальных прыжков (нелокального выхода), т. е. передачи управления на некоторую удалённую, возможно заранее неизвестную, точку программы. Вы можете выбросить (throw) исключение и поймать (catch) его из любой вызывающей функции в стеке :

    function foo() {
        // ...
        throw new Error("invalid foo");
    }

    // ...

    try {
        foo();
    } catch( e : Error ) {
        // обработка исключения
    }
</div>

Можно использовать несколько catch после try для того, чтобы отлавливать разные типы исключений. Они тестируются в порядке, в котором декларированы. Выражение catch( e : Dynamic ) будет отлавливать все исключения :

    try {
        foo();
    } catch( e : String ) {
        // обработать этот тип ошибок
    } catch( e : Error ) {
        // обработать другой тип ошибок
    } catch( e : Dynamic ) {
        // обработать все остальные ошибки
    }
</div>

Все выражения try и catch должны иметь один возвращаемый тип, за исключением ситуаций, когда никакого значения не нужно (также как if).