异常笔记

142 阅读1分钟

一、异常处理的作用

能够将异常提示给变成人员或者用户,使本来已经终端的程序能够继续运行或者推出,并且能保存用户当前的操作或者数据回滚,并能把占有的资源释放掉。

二、Error与Exception的区别

(1)都继承Throwable类
(2)Error表示系统错误,如内存溢出、虚拟机错误(VirtualMachineError)、线程死锁(ThreadDeath),是系统或者硬件的错误
(3)Exception是编码、环境或者用户操作输入出问题时出现的错误,分为非检查时异常(运行时异常RuntimeExeption)和检查时异常(非运行时异常)

三、处理异常

(1)处理

try{ 
    //一些会抛出异常的方法 
}catch(Exception e){ 
    //处理Exception的代码块 
}...(n个catch块)...{ 

}finally{ 
    //最终将要执行的一些代码 
}

(2)抛出

throw - 将产生的异常抛出(动作)
throws - 声明将要抛出何种类型的异常(声明)
例:

public void 方法名(参数) throws 异常列表{ 
    throw new Exception(); 
}

四、自定义异常

public class CustomException extends Exception{ 
    //构造方法 
    public CustomException(String message){ 
        super.(message); 
    } 
}

五、异常链

在捕获到的异常中添加一个新的异常,并引用当前捕获的异常,再把新的异常抛出。(新的异常中会包含原始异常的所有信息)
例:

try{
    方法();
}catch(IOException e){
    RuntimeException newExc = new RuntimeException("文件IO异常");
    newExc.initCause(e);
    throw newExc;
}

运行结果:
java.lang.RuntimeException : 文件IO异常
at ………
Caused by : java.io.IOException : ….