Исключение времени выполнения одного слоя является проверенным (и действующим) для другого слоя.
Я вижу контейнеры, например, контейнер сервлета;REPLs и / или что-либо цикл интерпретатора верхнего уровня;и т. д. законно выбирают и перехватывают исключения RuntimeException, поскольку они не должны аварийно завершать работу просто потому, что в стеке происходит что-то более глубокое.
Как и в случае с контейнером, пересечение границ смежности, например пересечение слоев или уровней, обычно требует более четко сформулированной семантики исключений.
Если свойства «причины» и / или сообщения оказываются семантически недостаточными для выражения чего-либо, кроме «эй, он сломался», и клиентский / более высокий уровень может действовать избирательно, то это, вероятно, допустимо для подкласса RuntimeException,