一、异常处理的作用
能够将异常提示给变成人员或者用户,使本来已经终端的程序能够继续运行或者推出,并且能保存用户当前的操作或者数据回滚,并能把占有的资源释放掉。
二、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 : ….