Я закодировал метод с обработчиком catch-all, но мне нужно перестроить исключение, как если бы оно было необработанным, так что вызывающий (много) дальше столбец вызовов может обрабатывать Это. Тривиальный способ сделать это просто:Перехватить и восстановить необработанное исключение Java
try {
...
} catch (Exception ex) {
// do something here...
// and rethrow
throw ex;
}
Но проблема заключается в том, что из-за throw
заявления, Java требует этот метод, чтобы заявить о себе как throws Exception
, который, в свою очередь, требует, чтобы все абоненты для обработки исключения или объявить себя throws Exception
. И так далее по цепочке звонков ...
Есть ли простой способ перебросить исключение, как если бы текущий метод не обрабатывал его?
Точно так же. Если у вас не было try/catch здесь, ваш метод должен был бы «вызывать исключение» (или, по крайней мере, «throws» типы исключений, фактически брошенных в вызовы метода в блоке 'try'). –
'catch (RuntimeException ex)'. Если ваш код не выдает исключенное исключение, вам понадобится обработчик для «RuntimeException», а другой - для определенных проверочных исключений - оберните в «RuntimeException» и «rethrow». –
«с уловщиком-уловщиком» редко бывает хорошей идеей. Зачем ты это делаешь? – Raedwald