Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Обработка исключительных
ситуаций, журналирование и логи
Разработчики. Занятие 5
Исключительная ситуация –
любая нештатная ситуация, в
которой программа не может
продолжить работу
Исключительные ситуации
Причины:
1. внутренние – ошибка в
программе
2. внешние – неверные входные
данные, проблемы в
конфигурации системы
Исключительные ситуации
Что делать:
1. предотвращать – для
внутренних, конфигурационных
2. обрабатывать – для неверных
входных данных, недоступности
ресурсов
Исключительные ситуации
Защитное программирование –
стиль, при котором во всех
функциях (методах) обязательно
проверяется предусловие и при
невыполнении генерируется
исключительная ситуация
Исключительные ситуации
Защита от внутренних
ошибок:
1. утверждения (assert)
2. модульные тесты
Исключительные ситуации
Защита от неверных данных:
1. проверка предусловия –
только если просто
2. в остальных случаях –
отлавливание исключений
Исключительные ситуации
Функция (метод) может:
1. вернуть специальное значение
(-1, NULL, пустой объект, код
ошибки и т.д.)
2. выбросить исключение (если
язык поддерживает)
Исключительные ситуации
Функция (метод) не должна:
1. изменять глобальные объекты
программы
2. выводить информацию об
ошибке в консоль или внешний
файл
Исключительные ситуации
Хорошее поведение функции
(метода) в Java:
1. возвращать пустые
объекты, NULL
2. выбрасывать исключения
Исключительные ситуации
Важно:
список выбрасываемых
исключений – часть контракта
функции (метода)
Исключительные ситуации
Плохой стиль:
выбрасывать из функции
(метода) все возникшие в ней
исключения
Исключительные ситуации
В чем проблемы:
1. вызывающий код должен
подключать лишние библиотеки
2. слишком большой список
исключений
Исключительные ситуации
В чем проблемы:
3. раскрываются детали
реализации
4. затрудняется использование
интерфейсов
Исключительные ситуации
Хороший стиль:
создать свои исключения по
типам ситуаций и использовать
их, пример
Исключительные ситуации
Журналирование –
фиксация всех действий с целью
восстановления данных после
сбоя и возможности отката к
предыдущему состоянию
Журналирование и логи
Логгирование –
фиксация только ошибочных
ситуаций и важных этапов работы
программы с целью поиска
внутренних и конфигурационных
ошибок
Журналирование и логи
Логгирование в Java –
библиотека log4j и надстройки
над ней, вывод в консоль или
файл
Журналирование и логи
Уровни логгирования в Java:
Fatal – фатальный сбой
Error – можно продолжать работу
Warning – потенциальная ошибка
Info – важный шаг, информация
Debug – отладочный вывод
Журналирование и логи
Принято логгировать:
1. пойманное исключение –
Error, Fatal
2. проблемы конфигурации –
Warning, Error, Fatal
Журналирование и логи
Принято логгировать:
3. начало и завершение важных
функций – особенно соединения с
внешними системами – с
сохранением отправленных и
принятых данных - Info
Журналирование и логи
Принято логгировать:
4. все подряд с уровнем Debug
Журналирование и логи
Помните:
грамотно организованное
логгирование сохранит вашу
карму от лучей смерти
команды поддержки
Журналирование и логи
Когда нужно журналирование:
1. финансовые системы
2. системы с бизнес-транзакциями
при обработке данных
3. любые базы данных
Журналирование и логи

More Related Content

Стажировка-2013, разработчики, занятие 5. Исключительные ситуации, журналирование и логи