java_基础_异常

来源:互联网 发布:ipad程序加密软件 编辑:程序博客网 时间:2024/05/21 02:21

一、异常概述
1、当出现程序无法控制的外部环境问题(用户提供的文件不存在,文件内容损坏,网络不可用。。。)时,JAVA就会用异常对象来描述。
2、异常的种类:
①检查性异常
程序正确,但因为外在的环境条件不满足引发,例如打开不存在的文件等
②运行期异常
程序存在BUG,例如数组越界,0被除等等,java编译器要求强制处理这类异常
③错误(跟运行环境有关)
可能源于程序的bug,更可能源于环境问题,如内存不够等
注:无论是哪种异常,都是java.lang.Throwable的子类
3、两种处理方法:
①在发生异常的地方直接处理
②将异常抛给调用者,让调用者处理
二、异常的处理(try..catch)
1、使用方法

    try {        //检查异常,如果存在异常执行catch语句        FileReader fr=new FileReader("d:\\aa.txt");    } catch (Exception e) {        //输出异常类型,有利于排bug        e.printStackTrace();        //或使用 e.getMessage    }

2、如果有多个catch语句则进入匹配的catch中执行
3、finally一般放在catch最后,即使前面的try块发生异常,而又没有对应的catch块,finally块将会马上执行
4、finally不会执行的情形:
①finally中发生了异常
②程序所在的线程死亡
③finally前面使用了System.exit();
④关闭CPU
5、不管是否存在异常finally最后都会执行,一般用来关闭之前打开的资源。
三、异常的处理(throw)
1、代码

class AA{    BB bb=new BB();    public void bbb()     {        //此时AA类调用了BB类,就要处理他的异常,可以用try..catch,或继续抛出,最后交给JAVA虚拟机处理(不推荐)        try {            bb.Open();        } catch (Exception e) {            e.printStackTrace();        }    }}class BB{    //通过throws语句,可以将异常抛给调用者处理,即上面的AA类    public void Open() throws Exception    {        FileReader fr=new FileReader("d:\\aa.txt");    }}
0 0