throws子句特点---当时不想处理,throws丢给调用者
-
CheckedException产生时,不一定立刻处理它。可以再把异常throws出去
-
使用try-catch-finally处理异常在一些情况下,当前方法不需要处理发生的异常,而是向上传递给调用它的方法处理
-
如果一个方法可能产生某种异常,但是并不能确定如何处理这种异常,应根据异常规范在方法的首部声明该方法可能抛出的异常
-
如果一个方法抛出多个已检查异常,必须在方法的首部列出所有的异常,以逗号隔开
-
实例:
package com.exception;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class Test03 {
public static void main(String[] args) throws IOException {
readMyFile();
}
public static void readMyFile() throws IOException{
/*创建对象*/
FileReader reader = null;
reader = new FileReader("c:/a.txt");
System.out.println("Step1");
char c1 = (char) reader.read();
System.out.println(c1);
if (reader != null){
reader.close();
}
}
/*
如果不throws就要进行try--catch---finally处理
所以在方法前就要声明异常抛出---throws
又因为FileNotFoundException和IOException是子类和父类的关系
所以抛出异常直接抛出给父类
但是抛出以后是给调用者处理
所以上面的调用方法会出问题
解决办法---继续抛出throws、try---catch处理
实际开发过程中:
try---catch---finally使用
throws也使用,最终抛出给框架处理
*/
}
抛出异常图片说明: