【发布时间】:2013-07-10 17:17:13
【问题描述】:
我有点怀疑这是否可行,但获得更多关于这方面的信息会非常有帮助。我想知道如何捕获函数尚未抛出的所有异常。
假设我有一个函数:
public int func(int a, int b) throws IOException, EOFException {
try {
doSomething(a, b);
} catch (AllExceptionsExceptionIOandEOF e) {
doSomethingWithError(e);
}
return 0;
}
有没有办法告诉 Java 如何做到这一点?我知道抛出通用的 Exception 对所有人都有效,但我想抛出除了抛出的异常之外的所有东西。
如果这被认为是不好的做法,为什么?什么是实现相同目标的好选择?
(PS -- 我知道,我知道所有可能的异常都需要单独处理的格言。为了我的目的,我只想捕获错误,将它们记录到数据库中,然后看看会发生什么我们在开发过程中错过了。当我的函数已经抛出 2 个异常时,我不愿意捕获通用 Exception)
我突然想到,一种方法是说:
try {
doSomething(a, b);
} catch (AllExceptionsExceptionIOandEOF e) {
doSomethingWithError(e);
if (e instanceof IOException)
throw e;
if (e instanceof EOFException)
throw e;
}
有没有更优雅的方式来做到这一点?
编辑 - 不幸的是,该项目是在 Java 6 合规性下完成的。我知道 Java 7 使 Try/Catches 更加灵活。
【问题讨论】:
-
仅在您的应用程序的 一个 位置执行此操作。见oracle.com/technetwork/java/effective-exceptions-092345.html
标签: java exception exception-handling try-catch throw