采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
ShopOperationException继承的是RuntimeException, 这样即使接口方法声明抛出运行时异常,在调用该方法的地方,编译器并不会提示必须处理。这样就无法提示:把异常和异常处理程序分开。 请问:声明接口方法的时候抛出一个运行时异常的目的是什么呢?
同学好,在我们有十足把握能够处理好异常的时候,就可以使用runtimeexception,这里抛出运行时异常主要为了遵循spring默认的回滚策略--遇见runtimeexception会回滚,其实我们也可以指定spring回滚默认的非runtimeexception异常,并且,我们能够探知到的异常肯定是运行时的,可以尽量在程序运行时去处理
就是因为即使方法声明上不抛出异常也不会对回滚有什么影响,而且运行时异常抛出后也编译器也不会强制要求处理,所以显得可有可无。 不是完全理解这样做的理由
public Shop getByShopId(long shopId) throws ShopOperationException {} 和public Shop getByShopId(long shopId) {} 的区别是提示开发者在调用时去做处理是吗?
因为这些异常都是运行时产生的,所以定义成运行时异常是希望能够给出具体的异常信息。在接口方法里定义抛出的异常后一般看到异常都会按照规范,依据跑出来的code进行处理,只是课程里面由于我们项目比较简单, 对异常处理不是很完善,后续章节会引入全局异常处理机制进行优化
登录后可查看更多问答,登录/注册
SSM商铺V1.0,解决毕设痛点;SpringBoot商铺V2.0,满足工作刚需
1.9k 47
1.8k 41
2.5k 40
1.8k 39
1.5k 37