Руководство по actionscript. часть 2, стр. 087
TraceC’An error occurred: » + e. message);
traceCPlease specify a smaller value.»): } catch (e:VirtualPetlnsufficientDataException) {
// Обработка нулевой длины.
traceC’An error occurred: » + e. message);
traceCPlease specify a larger value.»); } catch (e:VirtualPetNameException) {
// Обработка общих ошибок, связанных с размерностью.
traceC’An error occurred: » + е. message);
traceCPlease specify a valid dimension.»); } catch (e:Error) {
// Обработка любых ошибок, которые не относятся
// к ошибкам VirtualPetNameException.
}
Не забывайте, что выбор степени детализации ошибок зависит от ситуации. Реализуя вариант 4, мы создали пользовательские подклассы класса Error для каждого исключения, генерируемого классом VirtualPet. Этот подход дает нашей программе максимальную возможность независимо обрабатывать различные типы ошибок. Однако во многих ситуациях подобная гибкость является излишней. Будет лучше, если степень детализации ошибок будет определяться требованиями логики вашей программы.
Передача исключений вверх по иерархии объектов
В ActionScript исключение может быть сгенерировано в любом месте программы, даже в сценарии кадра на временной шкале! В этом случае возникает вопрос: каким образом среда выполнения Flash находит соответствующий блок catch для обработки этого исключения? И что произойдет при отсутствии блоков catch? Эти загадки решаются с. помощью магии передачи исключений вверх по иерархии объектов. Проследуем по пути передачи исключений вместе со средой Flash с того момента, как она выполнит в программе оператор throw. В ходе последующей инсценировки «размышления» среды выполнения Flash оформлены в виде комментариев.