SpringBoot的全局异常处理

传统开发的异常处理

//继承jsp,freemark,thymeleaf时可以使用    前后端不分离
/**
 * 全局异常处理之传统web开发
 */
@Component
public class GlobalExceptionHandler implements HandlerExceptionResolver {
    //参数1: 当前请求对象
    //参数2: 当前请求的响应对象
    //参数3: 当前出现异常的控制器对象
    @Override
    public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
        //异常处理...
        return new ModelAndView("500");
    }
}

RestFul的异常处理

//常用于前后端分离的项目
/**
 * 全局异常处理之RestFul
 */
@ControllerAdvice
public class GlobalExceptionHandlerRest {
    @ExceptionHandler(value = Exception.class)
    @ResponseBody
    public ResponseEntity<String> exceptionHandler(Exception e) {
        return new ResponseEntity<>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
    }
}

小提示:如果想通过不同的异常类处理跳转到不同的页面或者返回不同的异常信息,使用instanceof判断在进行操作

posted @ 2021-09-10 18:06  code-G  阅读(66)  评论(0编辑  收藏  举报