Преимущество заключается в том, что обычно вызывающий абонент не имеет ничего общего с исключением.Ловит, оборачивает с другим исключением и снова бросает.Или, в качестве альтернативы, объявляет исключение с помощью ключевого слова throws
и становится прозрачным для этого типа в случае исключения.
Я бы сказал, что описанная ситуация типична для приложений, в которых мы обычно пишем бизнес-код и имеем одно централизованное место.это обрабатывает все исключения.Это не правильно для API.Например, если вы используете библиотеку, которая реализует SSH, вы ожидаете, что она выдаст IOException
(или даже более специализированное исключение), когда что-то идет не так.