Вы должны обрабатывать как можно более конкретные Exception
с. Если вы знаете, когда может быть выброшено RuntimeException
, вы обычно должны исправить свою программу, чтобы она не выкидывала Exception
.
Что касается отлова, проверенного Exceptions
, вы должны обработать Exception
как можно точнее:
try {
} catch (FileNotFoundException fnfe){
} catch (IOException ioe){
} catch (Exception e){
}
Когда вы бросаете Exceptions
, вы почти никогда не должны использовать throw new Exception()
.
Бросьте исключение, которое может дать кому-то, кто видит это, больше информации о том, что случилось, когда это было брошено. (т. е. IndexOutOfBounds
или NullPointerExceptions
. Они дают конкретную информацию, даже не смотря на сообщение или трассировку стека.)
Если вы хотите выбросить Exception
, и вы не думаете, что Java API имеет тот, который соответствует вашему случаю, лучше всего создать подкласс или расширить исключение, дав ему очень информативное имя.