java——异常注意事项

1,编译时/运行时异常的抛出
例如:
import java.io.IOException;

public class ThrowsDemo {
public static void main(String[] args) throws IOException {
//调用抛出编译时异常的方法,这时,要么继续抛出编译时异常,
//要么try…catch处理
// method1();

    /*
    * 调用抛出运行时异常的方法时,可以不处理(jvm有默认的处理方案),
    * 也可以处理跟编译时异常处理的方案一样
    * */
    method2();

}
//演示编译时异常的抛出
public static void method1() throws IOException{
    //故意抛出一个编译时异常
    int i=10;
    if(i>0){
        throw new IOException("故意抛一个编译时异常");
    }
    System.out.println(i);
}
public static void method2()throws NullPointerException{
    //故意抛出一个运行时异常
    int[]array=new int[3];
    /*
    * 什么时候抛空指针异常:
    * 当在对象的引用上面,调用了对象的成员,而对象的值刚好为null时,就抛异常
    * 此例在31行会抛出空指针异常
    * */
    array=null;
    if(array.length>0){
        System.out.println(array.length);
    }
    System.out.println("hello world");
}

}
2,throws与throw的区别
throws
(1)用在方法声明后,跟的时异常类名
(2)可以跟多个异常类名,用逗号隔开
(3)可以抛出异常,该方法的调用者处理
(4)throws表示出异常的一种可能,并不一定会发生这些异常
throw
(1)用在方法题内,跟的是异常对象名
(2)只能抛出一个异常对象名
(3)表示抛出异常,由方法体的语句块处理
(4)throw则是抛出异常,执行throw则一定抛出了某种异常
3,处理异常的原则
如果该功能内部可以将问题处理,用try,如果处理不了,交由调用者处理,这是用throws
区别:
(1)后续程序需要继续执行就try
(2)后续程序不需要继续执行就用throws

猜你喜欢

转载自blog.csdn.net/weixin_42981168/article/details/88056957