spring boot 处理异常

1、通过建目录及html文件来显示不同的错误提示。

 

 

 测试以后发现,不存在会访问error/404.html,出错了都会走error.html。

2、通过代码返回json来处理相应的错误

1)设置


#出现错误时, 直接抛出异常

spring.mvc.throw-exception-if-no-handler-found=true

#表示不开启默认的资源处理,比如404

spring.resources.add-mappings=false

在配制文件里加上上面的一段话,就可以不走html文件,而去走class。

2)处理

@RestControllerAdvice
public class HandExceptionRes {
    /**
      实际处理,可以自已手工修改,以适合自已的业务。
   */
    @ExceptionHandler(value = Exception.class)  ==>这里面的value = Exception.class 在这个类中只可以存在同样的值唯一一次,不然运行会报错。
    @ResponseBody
    public Result defaultErrorHandler(HttpServletRequest req, Exception e) throws Exception {
        Result result = new Result(); -->自定义的类
        result.setMessage(ConstsInfo.CustomException); //设置了一个值,可以自已写,比如"123"
        result.setResultCode("-1");
        result.setTotal(0);
        ResultInfo resultInfo = new ResultInfo();

if (e instanceof org.springframework.web.servlet.NoHandlerFoundException) { resultInfo.setMsg("接口不存在"); } else { resultInfo.setMsg(e.getLocalizedMessage()); } return result; } }

 

这样不管出什么问题,都会走这个方法,也不用自已再自定义类extends  RuntimeException

当然,你还有更加明细的需求,那么可以自定义,然后throw new 自定义类();

 

posted @ 2021-08-19 13:11  jiduoduo  阅读(57)  评论(0编辑  收藏  举报