我想知道如果 catch
有任务需要处理,重新抛出错误是否合适? Java 中的 block 如下:
try {
doSomething();
} catch (Exception e) {
doSomethingElse();
throw e;
}
有人告诉我,仅仅抛出错误本身是一种不好的做法(可能是错误的),但就我而言,有一个处理部分,我只是想处理一个特定的任务(doSomethingElse
)在这种情况下)在这个级别并抛出错误,所以我将采用这种方法。任何见解将不胜感激!
最佳答案
通常您希望将特定错误的错误处理集中在一处。因此,您要么在这里完成整个错误处理,然后不重新抛出异常,要么只是不捕获它并让它在更高级别的原始位置捕获并在那里得到充分处理。有时,您捕获特定类型的异常,然后将其包装在不同的异常中,这是一种可接受的行为:
try {
doSomething();
} catch (IOException e) {
doSomethingElse();
throw new MyCustomException("My custom error message", e);
}
所以你的案例似乎是一个糟糕的设计。但是,我不想 100% 排除这种情况,因为在极少数情况下您可能需要做这样的事情。但作为正常情况,我会说这是一个不好的做法
关于java - 如果Java中的 block 中有一个任务需要处理,那么重新抛出catch语句中的错误是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56757606/