Существуют ли рекомендации по распространению исключений в Java?
Когда вы добавляете исключение в сигнатуру метода? Например: если исключение выдается только в том случае, если отсутствует существенный программный ресурс, и его можно обрабатывать только на верхнем уровне, могу ли я распространять его во всех методах, использующих это исключение, во всех методах, использующих метод с ошибками?
Есть ли хорошие практики? Любые плохие практики?
Извините, если я неясен, но я просто ищу некоторые (общие) советы по стилю программирования относительно исключений.
Рекомендации, которые помогли мне в прошлом, включают:
Вы должны обработать метод как можно скорее, но он должен иметь смысл. Если исключение не имеет смысла генерировать вашим методом, но вы не можете его обработать, перенесите его в другое исключение и выбросьте это новое исключение.
Плохая практика в отношении исключения - ловить их всех (это не покемон, это java!), Поэтому избегайте catch (Exception e)
или того хуже catch (Throwable t)
.