请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

ShopOperationException继承RuntimeException的问题

ShopOperationException继承的是RuntimeException,
这样即使接口方法声明抛出运行时异常,在调用该方法的地方,编译器并不会提示必须处理。这样就无法提示:把异常和异常处理程序分开。
请问:声明接口方法的时候抛出一个运行时异常的目的是什么呢?

正在回答

1回答

同学好,在我们有十足把握能够处理好异常的时候,就可以使用runtimeexception,这里抛出运行时异常主要为了遵循spring默认的回滚策略--遇见runtimeexception会回滚,其实我们也可以指定spring回滚默认的非runtimeexception异常,并且,我们能够探知到的异常肯定是运行时的,可以尽量在程序运行时去处理 

0 回复 有任何疑惑可以回复我~
  • 提问者 纯情的慕哥 #1
    就是因为即使方法声明上不抛出异常也不会对回滚有什么影响,而且运行时异常抛出后也编译器也不会强制要求处理,所以显得可有可无。
    不是完全理解这样做的理由
    回复 有任何疑惑可以回复我~ 2019-12-19 20:15:18
  • 提问者 纯情的慕哥 #2
    public Shop getByShopId(long shopId) throws ShopOperationException {}
    和public Shop getByShopId(long shopId)  {}
    的区别是提示开发者在调用时去做处理是吗?
    回复 有任何疑惑可以回复我~ 2019-12-19 20:18:14
  • 翔仔 回复 提问者 纯情的慕哥 #3
    因为这些异常都是运行时产生的,所以定义成运行时异常是希望能够给出具体的异常信息。在接口方法里定义抛出的异常后一般看到异常都会按照规范,依据跑出来的code进行处理,只是课程里面由于我们项目比较简单, 对异常处理不是很完善,后续章节会引入全局异常处理机制进行优化
    回复 有任何疑惑可以回复我~ 2019-12-20 03:24:53
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信