SpringBoot中定义全局异常处理类GlobalExceptionHandle

在我们平时开发中 应为开发场景较多 所以我们需要定义全局异常处理类 如果采用普通的异常抛出,则异常指示的不是很明确

@ExceptionHandle(value = "Exception.class") 异常捕捉类  捕捉异常的类也可以自己定义@ControllerAdvice 可以捕捉controller层抛出的异常

我们写个小demo来进行测试一下:

这是我们自己写的捕获异常的GlobalExceptionHandle类

我们在controller直接调用server层的方法 让server层的方法出错(报一个类型转换异常的错误)

 

 此时运行之后 运行异常会直接被我们所定义的异常拦截器拦截 从而打印出我们所定义的

类型转换异常的处理方法

 这样的话 就走到了我们自己定义的异常处理类,让我们的异常更加优雅的抛出。

但在此次此时的过程中 我无意间发现了这么一个问题,如果在service层直接抛出一个运行时异常的时候 在自定义的异常捕获类中应该会被我们定义的运行时异常所捕获,但在捕获之后却出现了一个问题

可见 我们的异常确实已经被捕获了 但是却在解析的时候出现了错误 是不是很奇怪呢 原来是我的解析时异常的参数类型不一致造成的

 此时就可以正常进行捕获并解析了

 

 

 

 

posted @ 2021-09-20 17:16  小猪不会叫  阅读(72)  评论(0)    收藏  举报  来源