Найти тему

Чистый код. Конспект. Глава 7. Обработка ошибок.

Время отдыхать после сложной шестой главы. Насколько я помню, все остальные главы уже будут легче, так что мы пережили всё самое страшное. Мы настоящие герои. :)

Заметки:

  1. Если обработка ошибок заслоняет логику программы, значит реализация неверная.
  2. Используйте исключения, а не коды ошибок. Коды ошибок загромождают код. Плюс с исключением логика не скрывается и все становится максимально прозрачно.
  3. Код с исключениями лучше начинать с try-catch-finally. Так мы сразу можем указать, что будет ожидать пользователь (если что-то пойдет не так и в корректном случае). Плюс в этом случае можно писать код в стиле TDD (сначала тест — потом код).
  4. Используйте непроверяемые исключения. Почему? Цена проверяемых исключений — нарушение принципа открытости/закрытости. Почему? Если мы кидаем проверяемое исключение, а catch находится намного выше, то нам везде надо прописывать в сигнатуре метода, что выбросится исключение. Значит изменение сигнатуры на низком уровне затронет изменение сигнатур на многих более высоких уровнях. Плюс это нарушение инкапсуляции, потому что все функции на пути должны располагать подробной информации о низкоуровневом исключении.
  5. Создавайте содержательные сообщения об ошибках и передавайте их с исключениями. С этим согласна и сама так делаю. :)
  6. Создавайте обертки и прячьте кучу catch внутрь. Плюс там же можно инициировать свои исключения для внешнего апи.
  7. Обертки для внешних библиотек еще хороши тем, что если мы захотим сменить библиотеку, то просто поправим внутри обертки. Плюс легче тестировать.
  8. Если есть возможность не бросать исключение, а обработать особый случай, то обработайте. Вот тут, кстати, я не уверена, что делаю это. Буду обращать внимание.
  9. Не возвращайте null. Это просто лишняя работа, что мы будем постоянно проверять на null. Плюс можно где-то забыть и словить исключение. Если хотите вернуть null, то рассмотрите вариант с исключением или как-то обработайте. — даже не знаю. Иногда я это делаю. Но ide и котлин помогают быстро обрабатывать проблемные места и показывают, где может быть исключение.
  10. В случае коллекций лучше возвращать пустую, а не null.
  11. Не передавайте null в качестве параметра.

Наука
7 млн интересуются