异常

异常处理   运行时

try{
    插卡
    输入密码和金额 2000
    余额 -= 2000
    吐钱 2000
}
catch(吐钱异常 e){
    余额 += 2000
}
finally{
    取卡
}

异常的分类: Throwable

   Error:错误          严重底层   无法避免 无法处理   
   Exception:异常     可以处理
       RuntimeException及子类:未检查异常  可以避免  可处理可不处理  
       非RuntimeException子类:已检查异常  无法避免  必须处理

异常对象的产生和传递
   throw 异常对象;    抛出一个异常,throw作用等同于return

   传递:沿着方法调用链反向传递
 
异常的处理
   throws 声明抛出     throws 已检查异常类名   
                      本方法内部如果出现该类型的异常,本方法不做处理
   try-catch 捕获异常  适用于所有异常(未检查+已检查)
     可以同时catch子类异常和父类异常,但必须先catch子类异常
   try-catch-finally   finally:无论如何都会执行 通常用于释放资源
   try-finally         没有真正捕获异常!

自定义异常
   自己写类 继承Exception或RuntimeException

方法覆盖(Override)
    子类用特殊的方法实现替换父类继承给它的一般的方法实现
    语法:方法名、参数表、返回值类型相同;访问修饰符相同或更宽 
         子类不能抛出比父类更多的异常
         子类不能抛出一个父类没有抛出的异常
         异常范围只能与父类相同或更少
原文地址:https://www.cnblogs.com/zhangqiyang/p/3701510.html