Руководство по actionscript. часть 2, стр. 076
Обратите внимание на типовую структуру.
1. Блок try выполняет код, который может сгенерировать исключение.
2. Код в блоке try использует оператор throw для оповещения о любых ошибках.
3. Если в блоке try не возникло никаких ошибок, то он выполняется полностью и программа пропускает блок catch.
4. Если в блоке try была сгенерирована ошибка, то его выполнение прекращается и начинается выполнение блока catch. Блок catch способен обрабатывать любые ошибки, возникающие в блоке try.
5. Выполняется блок final 1 у.
В большинстве случаев блок finally не требуется и, следовательно, опускается. В последующих примерах мы будем опускать блок finally. Далее, в разд. «Блок finally», мы рассмотрим пример использования этого блока.
Когда выполняется блок catch, он получает значение выражения выражение оператора throw в качестве параметра. В блоке catch это значение может помочь выявить ошибку, сгенерированную в блоке try. Образно говоря, код, в котором возникла проблема, бросает (throw) исключение (передает объект Error) в блок catch, который получает этот объект в качестве параметра (ловит (catch) его).
I Далее в разд. «Передача исключений вверх по иерархии объектов» мы выясним, что м$ 4 щ произойдет в том случае, если возникшая ошибка не будет обработана. —За*-
Рассмотрим пример инструкции try/catch/finally: try {
somePet. setName(«James»);
// Если мы находимся здесь, значит, исключение не возникло; // продолжаем выполнение, как планировалось ранее. traceCPet name set successfully.»); } catch (e:Error) { // ОШИБКА! Недопустимые данные. Выводим предупреждение. traceC’An error occurred: » + e. message);
}
Если при вызове метода pet. setName ( ) внутри предыдущего блока try оператор throw метода setName ( ) не будет выполнен (если не произойдет никакой ошибки), то все последующие инструкции в блоке try будут выполнены успешно и программа полностью пропустит блок catch. Однако если метод setName ( ) сгенерирует исключение, программа немедленно прекратит выполнение инструкций в блоке try и перейдет к выполнению блока catch. В блоке catch значением параметра е является объект класса Error, переданный в оператор throw внутри метода setName ( ).