Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 13.07.2012, 00:21
Jarproger вне форума Посмотреть профиль Отправить личное сообщение для Jarproger Найти все сообщения от Jarproger
  № 1  
Ответить с цитированием
Jarproger
 
Аватар для Jarproger

блогер
Регистрация: Jul 2010
Сообщений: 117
Записей в блоге: 4
Arrow Обязательные try..catch как в Java

Изучаю язык Java и заметил там одну очень полезную особенность - компилятор "заставляет" обработать все исключения. Нет ли во флекс-консольном компиляторе (который к FD прикручивается) такой опции?
__________________
Не бойся, если ты один. Бойся, если ты ноль

Старый 13.07.2012, 02:00
maxkar вне форума Посмотреть профиль Отправить личное сообщение для maxkar Найти все сообщения от maxkar
  № 2  
Ответить с цитированием
maxkar

Регистрация: 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 уведомляются. В основном же коде любое исключение - это какая-то ошибка логики приложения.

Создать новую тему Ответ Часовой пояс GMT +4, время: 02:15.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 02:15.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.