异常的继承体系:
** 抛出异常时,可以直接抛出该异常或者该异常的父异常**<br /> ** try catch 可以捕获当前异常或者当前异常的父异常**<br /> ** 在子类继承父类中,子类覆写的父类方法中,**<br /> **如果父类被覆写的方法没有抛出异常,**<br />** 那么子类方法不能抛出任何异常**<br /> **子类方法只能try catch**<br /><br />** 如果父方法抛出了异常那么子类的方法才可抛出异常**
如果父类方法抛出异常,那么子类覆写方法抛出异常处理方式:
** 1.不抛出(try...catch处理)**<br />** 2.抛出跟父类异常的同样异常**<br />** 3.抛出父类异常的子异常**<br /> **子类覆写的方法 只能抛出异常的类型是 小于等于父类抛出的异常**
多异常处理:
如果一段代码中出现好几处非运行时异常,那处理方式:<br /> 1.分别抛出 在方法上面多个抛出异常用逗号隔开<br /> 2.统一抛出一个父异常<br /> 3.分别try catch<br /> 4.统一try catch try代码块里面出现多个要处理的异常 处理方式<br /> (1):多个catch代码块<br /> (2)单个catch代码块 用| 隔开 匹配多个异常 1.7新写法<br /> 不推荐 try里面写太多代码 否则会出现多个错误 无法挨个处理<br /> 一旦有报错 直接匹配catch try后面的代码无法被执行
针对运行时异常的处理
** try catch**<br /> 如果运行时异常报错程序终止,这样不太健壮<br /> 所以我们可以在有可能出现运行时异常的隐患处<br /> **自己手写try catch异常**<br /> **手动炸掉程序**<br /> RuntimeException r=new RuntimeException();<br /> throw r; //一但炸掉后续代码也不执行<br />throw 自定义异常对象/系统异常对象 手动抛出一个异常错误对象<br />
如何直接定义一个异常类?
自定义异常类 一个类继承异常类<br />