Регистрация: Nov 2010
Сообщений: 497
|
Нет, такой опции нет. Не позволяет система типов (Function даже типа аргументов и возвращаемого значения не имеет, не то, что исключений (кстати, исключения - частный тип возвращаемого значения)). Ну и формат swc/swf, соответственно, не поддерживает указание исключений, которые необходимы компилятору.
Кроме того, для AS3 подобная проверка поможет слабо. Если вы внимательно посмотрите, 80% всех исключений в java образуются в результате синхронного ввода/вывода (где-то на низком уровне). Во flash ввод/вывод асинхронный и эти исключения возникают совсем не там, где нужно. Парсинг и прочая обработка превентивно закрывается try/catch в обертках сетевого обмена, работы с shared object. Все равно там может что-нибудь "unchecked" прилететь.
Еще часть checked exception - многопоточность и различное "окружение/конфигурация" (это семейство NoSuchAlgorithmException для криптографифи и прочие с аналогичным смыслом). Этого во flash просто нет.
Есть какое-то совсем небольшое количество checked exception, которые не попадают в указанные категории, они очень локальны в применении, так что их можно обработать/проверить и вручную.
Остался класс "внутренних ошибок", который традиционно в java выражается через unchecked exception. А они ничем не отличаются от исключений в AS3.
Ну и из опыта скажу (я документирую все выбрасываемые исключения через @throws в ASDoc). В AS3 нет места аналогам checked exceptions, есть только внутренние ошибки. Те немногие места, где исключения стоит обрабатывать (пара исключений у лоадера, например) у меня отлавливаются в сетевом уровне и идут в callback ошибок, туда же, куда идут и асинхронные ошибки. Также отлавливаются ошибки парсинга (там же, на сетевом уровне) и тоже через тот же callback уведомляются. В основном же коде любое исключение - это какая-то ошибка логики приложения.
|