throws异常处理基本介绍
- 如果一个方法(中的语句执行时)可能生成某种异常,但是并不能确定如何处理这种异常,则此方法应显示地声明抛出异常,表明该方法将不对这些异常进行处理,而由该方法的调用者负责处理
- 在方法声明中用throws语句可以声明抛出异常的列表,throws后面的异常类型可以是方法中产生的异常类型,也可以是它的父类
举例
package com.tao.throws_;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
public class Throws01 {
public static void main(String[] args) {
}
public void f1() throws FileNotFoundException,NullPointerException{
FileInputStream fis = new FileInputStream("d://aa.txt");
}
}
throws异常处理注意事项和使用细节 [ThrowsDetail.java]
- 对于编译异常,程序中必须处理,比如try - catch 或者 throws
- 对于运行时异常,程序中如果没有处理,默认就是throws的方式处理
- 子类重写父类的方法时,对抛出异常的规定:子类重写的方法,所抛出的异常类型要么和父类抛出的异常一致,要么为父类抛出的异常的类型的子类型
- 在throws过程中,如果有方法 try - catch,就相当于处理异常,就可以不必throws
举例
package com.tao.throws_;
public class ThrowsDetail {
public static void main(String[] args) {
}
public void f2(){
int n1 = 10;
int n2 = 0;
double res = n1 / n2;
}
}
class Father{
public void method() throws RuntimeException{}
}
class Son extends Father{
@Override
public void method() throws NullPointerException{}
}
package com.tao.throws_;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
public class ThrowsDetail02 {
public static void main(String[] args) {
}
public static void f1(){
try{
f3();
}catch (FileNotFoundException e){
e.printStackTrace();
}
}
public static void f3() throws FileNotFoundException {
FileInputStream fis = new FileInputStream("d://aa.txt");
}
public static void f4(){
f5();
}
public static void f5() throws RuntimeException{
}
}