非检查异常(Error、RuntimeException 或它们的子类)不可使用 throws 关键字来声明要抛出的
异常。
一个方法出现编译时异常,就需要 try-catch/ throws 处理,否则会导致编译错误。
2. 抛出异常
如果你觉得解决不了某些异常问题,且不需要调用者处理,那么你可以抛出异常。
throw关键字作用是在方法内部抛出一个 Throwable 类型的异常。任何Java代码都可以通过throw
语句抛出异常。
3. 捕获异常
程序通常在运行之前不报错,但是运行后可能会出现某些未知的错误,但是还不想直接抛出到上一
级,那么就需要通过try…catch…的形式进行异常捕获,之后根据不同的异常情况来进行相应的处
理。
4. 如何选择异常类型
可以根据下图来选择是捕获异常,声明异常还是抛出异常
5. 常见异常处理方式
直接抛出异常
通常,应该捕获那些知道如何处理的异常,将不知道如何处理的异常继续传递下去。传递异常可以
在方法签名处使用 throws 关键字声明可能会抛出的异常。
封装异常再抛出
private static void readFile(String filePath) throws IOException {
File file = new File(filePath);
String result;
BufferedReader reader = new BufferedReader(new FileReader(file));
while((result = reader.readLine())!=null) {
System.out.println(result);
}
reader.close();
}