老师 我这儿有点不理解

老师 我这儿有点不理解

https://img1.sycdn.imooc.com//climg/6362388d095ac1b311130637.jpg

这儿抛出“运行时异常”意思是不是当这些代码运行时出现了异常,不会停止运行,等调用者执行这个“运行时异常”?

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

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

1回答
好帮手慕小蓝 2022-11-02 18:28:05

同学你好~

    首先,getDataSource方法中出现的异常,不应当在getDataSource方法内部处理。因为如果写在getDataSource方法内部,这些处理的方式未必能够满足方法调用者的需求。所以,getDataSource方法中出现的异常应当由方法的调用者来处理。

    此时按照分析,应当由getDataSource声明throws语句来声明方法中可能抛出SQLException。但是很遗憾,父接口DataSourceFactory中的getDataSource方法声明为“DataSource getDataSource();”,所以子类是不能够抛出任何已检查异常的。

    所以此时可以发现,getDataSource应当抛出异常,但是方法的语法不允许抛出已检查异常。那么解决方案就是,抛出未检查异常,即RuntimeException这个折中的方案。

    综上,这里使用RuntimeException是为了保证异常对象可以正常抛出,又不会导致编译错误而使用的折中方案。

祝学习愉快~

  • 提问者 星辰很精彩 #1

    那这儿这个“运行时异常”具体什么异常还是得看具体抛出了什么异常吗?因为运行时异常比较多啊

    2022-11-02 19:24:48
  • 好帮手慕小蓝 回复 提问者 星辰很精彩 #2

    同学你好,“运行时异常”指的是“RuntimeException”及其子类。由于课程中使用了“new RuntimeException(throwables);”,所以课程中的“运行时异常”指的是“RuntimeException”。

    祝学习愉快~

    2022-11-03 09:56:38
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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