如果有一个带有多个 catch block 的 try-catch,是否有办法将异常重新抛出到下一个(不是底层的)catch 子句?
例子:
try {
// some exception can occur here
} catch (MyException ex) {
// do something specific
// rethrow ex to next catch
} catch (Exception ex) {
// do logging stuff and other things to clean everything up
}
当抛出 MyException
时,我想处理该异常的特定内容,但随后我想处理一般异常 (catch (Exception ex)
)。
我不想使用 finally block ,Java 7 Multi-catch 在这里也没有帮助。
关于如何处理这个问题的任何想法,我想避免在每个 catch block 中出现冗余内容。仅捕获 Exception
然后将 instanceof
用于我的特定内容是否更好?
谢谢。
最佳答案
public void doStuff()
{
try
{
// some exception can occur here
} catch (MyException ex){
// do something specific
cleanupAfterException(ex);
} catch (Exception ex) {
cleanupAfterException(ex);
}
}
private void cleanupAfterException(Exception ex)
{
//Do your thing!
}
我想像这样的东西可以吗?
关于java - "Rethrow"到下一个 catch 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19266587/