对异常链的疑问
1、在学习thorws和throw时,无论是课程里还是老师们的回答,还是练习题的解析,大家在使用"抛出"这两个字时,一会儿指throw,一会儿指throws。老师,到底哪个是抛出?
2、老师,面对异常为什么不就地解决,非要像异常链那样逐层抛出?
3、throw new Exception("我是新产生的异常1",e);这个e是指什么?
4、
catch (Exception e) {
Exception e1=new Exception("我是新产生的异常2");
e1.initCause(e);
throw e1;
}
老师,catch里的代码怎么去理解呢?
正在回答 回答被采纳积分+1
1、同学你好,这两个确实都是抛出,多数是指throws,throw的用的还是相对比较少的。需要同学根据视频或者具体代码中的语境来理解哦。
2、当有些异常不应该交由这个方法处理,或者这个方法处理不了的情况下就应该用throws抛出。
举个贴进生活的例子,比如,采购部的领导给你一些钱,让你去采买一些材料,但是你发现材料涨价了钱不够了,这个时候,你的这个异常是应该自己处理呢?还是把这个问题抛出了来,告诉采购部的领导,让他来处理这个异常呢?如果你的领导之前告诉过你,我就给你这些钱,你就给我把事儿办了,出什么问题自己解决,这个时候,你就只能就地处理了,而你的领导告诉过你,如果钱不够了,请把这个问题抛给我,我去给你解决。那就可以抛出去,交给调用你的人去处理了。
可能不是特别贴切,但是同学可以通过这个例子来理解,具体什么要就地处理还是要抛出异常,要根据业务的规则而定。
3、这个e其实就是这个抛出异常的实例对象。
老师在视频的4分钟往后有讲哦,请同学再复习一下。
4、同学问题4中的代码和问题3中的实现是一样的,只是两种不同的方式而已。
老师也是在课程的6分30秒有讲解到,同学可以再听一下呦。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星