我有一个关于在 Java 中重新抛出异常的非常简单的问题。
这是代码片段:
public static void main(String[] args) throws FileNotFoundException {
try {
FileReader reader = new FileReader("java.pdf");
} catch (FileNotFoundException ex) {
throw ex;
}
}
public static void main(String[] args) throws FileNotFoundException {
FileReader reader = new FileReader("java.pdf");
}
为什么我们需要在第一个版本中重新抛出 ex
而第二个版本看起来更优雅?可能有什么好处,哪个版本优于另一个版本?
最佳答案
你是对的。第二个版本更好。此外,第一个版本没有任何意义。除了异常的堆栈跟踪将是“错误的”之外,它的作用相同。
“重新抛出”异常的原因有以下几种:
- 如果你之前有事要做。
- 如果您捕捉到一种类型的异常并抛出另一种类型的异常:
例子:
try {
// do something
} catch (IOException ioe) {
throw new IllegalStateException(ioe);
}
关于java - 在java中重新抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11972765/