异常处理

异常处理

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

//异常处理会让代码更健壮

/**两种异常处理

* 1)在发生位置直接处理

* 2)将异常抛出,让调用者处理

*/

/**异常分类(异常父类:java.lang.Throwable)

* 1)检查性异常:java.lang.Exception

* 2)运行期异常:java.lang.RuntimeException

* 3)错误:java.lang.Error

*/

/**finally不会执行情况

* 1)finally块中发生了异常

* 2)程序所在线程死亡

* 3)在前面代码中用了System.exit()

* 4)关闭CPU

*/

/**throws

* 把异常抛给调用者处理,调用者可以继续抛出给调用者

* 也可以在调用者中处理异常

* 一直抛出最终会交给JVM虚拟机处理

*/

public class 异常处理 {

    public static void main(String[] args) {

        //打开不存在的文件

        //如果有多个catch,当捕获第一个异常时,程序结束,不会捕获下一个异常

        FileReader fr=null;

        try {

            //放会出现异常的代码

            fr=new FileReader("d:/a.txt");

            System.out.println("会不会跳过");

        } catch (FileNotFoundException e) {

            //捕获异常

            // 输出异常信息

            //System.out.println(e.getMessage());

            e.printStackTrace();

            //非正常退出(值为-1),finally不执行

            //System.exit(-1);

        }finally{

            //一般放要关闭的资源

            if(fr!=null){

                try {

                    fr.close();

                } catch (IOException e) {

                    e.printStackTrace();

                }

            }

        }

        System.out.println("会执行吗");

    }

}
原文地址:https://www.cnblogs.com/xdzy/p/9468683.html