Мои Конспекты
Главная | Обратная связь

...

Автомобили
Астрономия
Биология
География
Дом и сад
Другие языки
Другое
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Металлургия
Механика
Образование
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Туризм
Физика
Философия
Финансы
Химия
Черчение
Экология
Экономика
Электроника

Не игнорируйте исключений





Помощь в ✍️ написании работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

 

Этот совет кажется очевидным, но он нарушается настолько часто, что заслужи­вает повторения. Когда разработчики API декларируют, что некий метод инициирует исключение, этим они пытаются что-то вам скliзать. Не игнорируйте это! Игнориро­вать исключения легко: необходимо всего лишь Окружить вызов метода оператором try с пустым блоком catch:

 

// Пустой блок catch игнорирует исключение - крайне

// подозрительный код!

try {

} catch (SomeException е) { }

 

Пустой блок catch лишает исключение смысла, который состоит в том, чтобы вы обрабатывали исключительную ситуацию. Игнорировать исключение это все равно, что игнорировать пожарную тревогу: выключить сирену, чтобы больше ни у кого не было возможности узнать, есть ли здесь настоящий пожар. Либо вам удастся Всех обмануть, либо результаты окажутся катастрофическими. Когда бы вы ни увиде­ли пустой блок catch, в вашей голове должна включаться сирена. Блок catch обязан содержать, по крайней мере, комментарий, объясняющий, почему данное исклю­чение следует игнорировать.

Ситуацию, когда игнорирование исключений может оказаться целесообразным, Иллюстрирует такой пример как визуализация изображений в мультипликации. Если экран обновляется через равные промежутки времени, то, возможно, лучший способ Справиться с временным сбоем - игнорировать его и подождать следующего обновления экрана.

 

 

 

Представленная в этой статье рекомендация в равной степени относится как к обрабатываемым, так и к необрабатываемым исключениям. Вне зависимости от того, представляет ли исключение предсказуемое условие или программную ошибку, если оно игнорируется и используется пустой блок catch, то в результате программа, столкнувшись с ошибкой, будет работать дальше, никак на нее не реагируя. Затем в любой произвольный момент времени программа может завершиться с ошибкой, и программный код, где это произойдет, не будет иметь никакого отношения к дей­ствительному источнику проблемы. Должным образом обработав исключение, вы можете избежать отказа. Даже простая передача необрабатываемого исключения во­вне вызовет, по крайней мере, быстрый останов программы, при котором будет сохра­нена информация, полезная при устранении сбоя.

 

 

Глава 9

Потоки

Потоки позволяют выполнять одновременно несколько операций в пределах одной программы. Многопоточное программирование сложнее однопоточного, так что совет из статьи 30 здесь особенно актуален: если существует библиотечный класс, который может оградить вас от многопоточного программирования низкого уровня, во что бы то ни стало воспользуйтесь им. Одним из примеров таких классов является java.util.Тiтeг. Второй при мер - пакет util.concurrent Дага Ли (Doug Lea) [Lea01], содержащий целый набор утилит высокого уровня для управления потоками. Но, несмотря на наличие библиотек, вам все равно время от времени приходится писать или поддерживать программный код для многопоточной обработки. В этой главе содержатся советы, которые помогут вам создавать понятные, правильные и хорошо документированные программы для работы с потоками.

 

Доверь свою работу ✍️ кандидату наук!
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой



Поиск по сайту:







©2015-2020 mykonspekts.ru Все права принадлежат авторам размещенных материалов.