【发布时间】:2018-07-18 01:30:25
【问题描述】:
“使用 try-catch 和 throws 来处理异常”,这是一个好方法吗?使用这种方法有哪些适用的优点/缺点?
请看下面的示例代码 sn-p,我有一个 try-catch 块以及 throws 子句。 在下面的代码 sn-p 中,我尝试在 catchExceptionMethod() 中读取一个文件,该文件引发 FileNotFoundException 并在 catch 块中捕获它。
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
public class ExceptionTest {
public static void main(String[] args) {
ExceptionTest obj=new ExceptionTest();
try {
obj.catchExceptionMethod("test.txt");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
public void catchExceptionMethod(String path) throws FileNotFoundException{
try {
BufferedReader br=new BufferedReader(new FileReader(new File(path)));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
【问题讨论】:
-
如果异常永远不会被抛出或重新抛出,则不需要 throws 子句。
-
如果你已经用 catch 块处理了方法内部的异常并且不重新抛出它,它怎么会从方法本身抛出呢?简短的回答:这是不好的和多余的。您的
catchExceptionMethod永远不会抛出FileNotFoundException并添加throws FileNotFoundException只是一个直截了当的谎言;)。 -
感谢 OHGODSPIDERS 和 MenoHochschild 的回复
标签: java exception exception-handling try-catch throws