异常处理 运行时 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) 子类用特殊的方法实现替换父类继承给它的一般的方法实现 语法:方法名、参数表、返回值类型相同;访问修饰符相同或更宽 子类不能抛出比父类更多的异常 子类不能抛出一个父类没有抛出的异常 异常范围只能与父类相同或更少
原文:http://www.cnblogs.com/zhangqiyang/p/3701510.html