20180913work

1.概念
异常(Exception)是程序在执行过程中所产生的问题
2.异常的类型
(1)检查异常(编译时异常),由编译器检查出来的异常
(2)只有在程序运行时才抛出的异常
(3)错误,实际上已经脱离了异常的范畴,因为程序员无法通过修改代码解决问题,比如:内存不足,网络连接问题
3.异常的流程控制
(1)方法本身直接抓捕异常,并继续让这个异常对象沿着方法调用栈继续向下传递
(2)方法的本身直接抓捕异常,不让这个异常沿着方法调用栈继续传递下去
(3)不去抓捕异常,就让这个异常对象沿着方法调用栈继续向下传递,并让方法从方法栈中直接弹出
4.处理异常
(1)throws关键字,用来给方法的调用者提前声明,这个方法可能会抛异常
(2)方法异常的声明,通常用于编译时异常,而运行时异常不需要
(3)当一个方法中,可能抛出不计数的异常个数,解决方案有两种
①定义多个catch块,分别进行代码监控,另外一个需要注意的是:在定义多个catch块的时候,定义的顺序需要遵循从小到大的顺序
②在catch块的参数类型定义时,直接定义上层父类,采用动态多态的方式来解决问题
(4)编译时异常解决方案: 要么直接异常处理,要么就给方法的调用者进行异常声明运行时异常的解决方案: 不需要异常处理,也不需要异常声明,让他报错,报错以后,程序员通过条件判断语句解决
5.异常的声明
(1)声明异常的原因
(事务)参与到同一个业务范围内的业务方法,为了保证事务的完整,必须声明异常,而不是抓捕异常,否则外部无法进行事务控制。调用者必须知道被调用者返回的具体结果。
(2)声明异常的时机
①当一个方法的调用者,需要知道调用方法的具体执行前情况,而并非是成没成功,失没失败,就有必要进行异常声明
②例如:transfer()想要知道张三给李四转钱5000这个过程中。所有执行方法的具体执行情况
③在方法声明的时候,如果遇到子异常和父异常都有可能出现的情况,建议声明父异常,因为子异常可以自动向上转型这里写图片描述

猜你喜欢

转载自blog.csdn.net/Lsy_Coder/article/details/82691691