【发布时间】:2013-10-16 11:46:42
【问题描述】:
如果有一个带有多个 catch 块的 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 块,Java 7 Multi-catch 在这里也没有帮助。
关于如何处理这个问题的任何想法,我都想避免在每个 catch-block 中出现多余的东西。仅捕获Exception 然后将instanceof 用于我的特定内容会更好吗?
谢谢。
【问题讨论】:
-
出于好奇:
finally子句有什么问题? -
终于没有问题了!!这允许您执行应该在有或没有异常的情况下运行的代码
-
@aga 好吧...它在所有情况下都会触发,而不仅仅是在发生异常时。
-
这不是你想要的 :) 明确
-
是的,我需要 finally-exception 之类的东西:P