我有点怀疑这是可能的,但获得更多关于此的信息将会非常有帮助。我想知道如何捕获一个函数尚未抛出的所有异常。如何捕获所有尚未被函数抛出的异常?
说我有一个功能:
public int func(int a, int b) throws IOException, EOFException {
try {
doSomething(a, b);
} catch (AllExceptionsExceptionIOandEOF e) {
doSomethingWithError(e);
}
return 0;
}
有没有办法来告诉Java的怎么办?我知道抛出通用的Exception
作品,但我想抛出除抛出的异常之外的所有东西。
如果这被认为是不好的做法,为什么?什么是完成相同目标的好选择? (PS - 我知道,我知道所有可能的异常都需要单独处理的谚语,为了我的目的,我只想捕捉错误,将它们记录在数据库中,然后看看会发生什么事情。我们在开发过程中错过了我很舍不得赶通用Exception
时,我的功能已经抛出2个例外)
它只是发生在我,一个办法是说:
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更灵活一些。
只在您的应用程序的* one *位置执行此操作。请参见http://www.oracle.com/technetwork/java/effective-exceptions-092345.html – artbristol