Непроверенные исключения - это те, которые расширяют класс RuntimeException
. Компилятор никогда не заставит вас перехватить такое исключение или не объявит его в методе с использованием ключевого слова throws
. Все другие типы исключений (которые не расширяются RuntimeException
) проверяются и поэтому должны быть объявлены как выброшенные и / или перехваченные.
Проверенные исключения используются, когда вы хотите, чтобы вызывающая сторона вашего метода (т. Е. Пользователь вашего API) явно обрабатывала исключительный случай в вашем API. Проверенные исключения объявляются, когда вы считаете, что вызов сможет сделать что-то значимое в этом исключительном случае, например, повторная попытка вызова, откат изменений или преобразование их в какое-то читаемое пользователем сообщение об ошибке.
Если вы считаете, что вызов не может быть полезен для исключения (особенно, когда оно представляет ошибку или неправильное использование вашего API), исключение следует снять. Кроме того, API со слишком большим количеством проверенных исключений может раздражать программирование (например, попробуйте использовать API отражения java =)