Может иметь смысл поймать более конкретное исключение, чем выбрасываете, потому что всегда хорошо реагировать на конкретные случаи, если у вас есть конкретный ответ. В этом случае, однако, зачем оборачивать это в RuntimeException
? Это худший случай, чем GeneralSecurityException
, т. Е. Так плохо, что вы хотите обойти обычную обработку вызывающим абонентом? Другой GeneralSecurityException
не будет так плохо?
Мой подход изменился за эти годы. В последнее время я объявляю намного меньше исключений, как правило, тех, с которыми вызывающая сторона МОЖЕТ программно иметь дело, в основном связанных с бизнесом (например, NoSuchUser
). «Системные» или инфраструктурные проблемы попадают в RuntimeException
некоторого разнообразия, поскольку вызывающий действительно ничего не может сделать, кроме как помочь.
В вашем случае, может ли звонящий сделать что-то с IOException
или GeneralSecurityException
? Если нет, я бы вообще не ставил их в подписи (это только сбивает с толку вызывающего), а просто оборачивал любые исключения, возникающие в RuntimeException
.