异常的问题

异常的问题

首先,老师创建一个统一处理异常类的意义:

1、因为在程序运行中会出现一些系统异常, 而这些异常是我们没有处理到的,那必然会暴露出来,所以这里的对所有的exception异常都进行了设置,返回的结果。只暴露了一些信息。 所以系统异常也包含了一些我们没有顾忌到的逻辑异常吧, 比如没有找到文件,下标越级,转换问题等等,这些也都会被定义为系统异常吧。

2、关于自定义的逻辑异常, 其实我们在controller中完全可以直接try catch步骤,然后将自定义异常的结果返回前端就可以了。 但是这样的,有可能会遗漏,所以在这个统一处理异常创建自定义异常的拦截处理的好处吧。

3、这个异常拦截是通过@ControllerAdvice 注解 ,拦截controller的异常吧, 范围的话是通过@ExceptionHandler 注解决定的吧。  是真针对throws抛出的异常进行拦截处理吗,如果catch也捕获了,处理了,并且return了, 那这个异常拦截还会二次拦截吗?

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

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

2回答
好帮手慕小班 2021-06-09 17:31:14

同学你好,1、同学的理解是正确的。

    ​2、是的,如果直接在controller中使用try-catch步骤,可能会有一些其他异常信息。

    ​3、是的,是对throws抛出的异常进行拦截处理。

祝学习愉快!

  • 提问者 rock221 #1

    关于2,是否存在其他异常信息,则取决与我们在抛出异常的时候,传入的参数决定的吧, 但是catch无法对我们意料之外的异常进行处理,比如。。空指针异常了。。。

    2021-06-09 17:50:58
  • 好帮手慕小班 回复 提问者 rock221 #2

    同学你好,出现异常信息受多种因素的影响,比如  传递的异常参数,查询结果出现的异常,跳转出现异常,并不只限于传入的参数决定的。

    所以一个catch语句并不能处理所有可能出现的异常。

    祝学习愉快~

    2021-06-09 19:12:05
rock221 提问者 2021-06-09 12:50:08

追加关于3提问:

我测试过了,如果catch对已经进行捕获了, 那么异常类不会再次拦截处理, 它只会拦截抛出且没有处理的异常,进行处理,然后返回数据。 

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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