当前位置: 首页 > 后端技术 > Java

springboot全局异常@ControllerAdvice处理思路

时间:2023-04-02 00:16:42 Java

问题我们项目上线的时候,用户访问某个url,执行某个controller方法的时候,突然遇到异常,此时页面会出现错误信息,这样用户体验不好嘛,也会让别人怀疑我们的实力。例如:@ControllerpublicclassUserControllerr{@ResponseBody@RequestMapping("/java")publicStringTest(){inta=1/0;//代码执行到这里会抛出异常except0return"asd";}}用户执行http://localhost:8080/java时报错截图:这只是一个简单的报错,有时甚至更可怕。思考:那么当出现异常的时候,我们能不能统一处理异常,规定返回的是json格式或者跳转到错误页面呢?操作步骤:1.导入坐标2.创建一个异常处理类,在该类上面添加@ControllerAdvice注解3.在你定义的异常类中创建一个方法,异常发生后的一些操作逻辑4.在你创建的方法中添加@ExceptionHandler()5.在@ExceptionHandler()中写上你要处理的异常类型,表示当有异常发生时,执行该方法。6、@ExceptionHandler(Exception.class),表示所有的异常都会执行这个方法,所以这是异常处理的方式@ControllerAdvice,是Spring3.2新提供的注解。它是一个Controller增强器,可以控制controller在@RequestMapping注解的方法中添加一些逻辑。最常用的异常处理操作代码如下:@ControllerAdvicepublicclassGlobalExceptionHandler{@ExceptionHandler(Exception.class)@ResponseBodypublicStringexceptionHandlerTest(){return"系统正在维护中!";}总结:1、@ExceptionHandler(Exception.class),Exception.class,表示所有异常发生时执行该方法。2.如果你想针对特定的异常实现特定的逻辑,你可以自定义异常,然后在@ExceptionHandler("异常类")的括号中写上你要处理的异常。如果您在运行这段代码的过程中遇到问题,请加小编vi信xxf960513,!助您快速掌握本功能代码!