异常执行逻辑问题

异常执行逻辑问题

主方法调用testThree方法后,程序还没捕获异常时,

会执行方法里的try一直到testOne,这时testOne抛出异常,

可是为什么异常不是被主方法catch捕获而是先被testTwo的catch捕获

再到testThree的catch捕获最后再被主方法catch捕获呢?http://img1.sycdn.imooc.com//climg/5d200cf0000191d507880543.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
吃吃吃鱼的猫 2019-07-07 09:53:13

同学你好,捕获异常的语句是try-catch,如果在调用它的方法中使用了try-catch的话,那么就由调用它的方法捕获异常。


如果在调用它的方法中使用了“throws 异常”的话,那么在调用它的方法中继续向上抛出异常。


如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

好帮手慕小班 2019-07-06 14:45:03

        同学你好,这里在主方法中执行顺序是:运行程序,进入主方法-->主方法调用testThree(暂停主方法),进入testThree方法-->testThree方法调用testTwo方法,进入testTwo方法-->testTwo方法调用TestOne方法-->TestOne方法抛出异常-->由调用TestOne的testTwo来接收这个异常-->testTwo处理后又抛出了异常-->testThree接收testTwo抛出的异常,并处理后,继续向上抛出一个新的一下异常!-->最后由主方法来接收testThree抛出的异常!

http://img1.sycdn.imooc.com//climg/5d204141000198b308570790.jpg

所以,testOne抛出异常是由调用testOne的testTwo来接收这个异常哦!

        如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 慕村4575073 #1
    所以都是特定的吗?调用它的方法来捕获异常。
    2019-07-06 20:09:52
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师