厂西建设厅网站,潍坊网站制作保定公司电话,东莞公司制作网站,同一服务器建两个wordpress上篇博客#xff1a;异常处理返回结构体#xff0c;做到全局统一#xff0c;仍然会出现一些情况。
针对未找到接口爆出404异常#xff0c;返回结构体如果没有处理的话会变成下面这样#xff0c;不会走全局异常处理#xff0c;这样的话就没有完全做到全局异常统一处理。 …上篇博客异常处理返回结构体做到全局统一仍然会出现一些情况。
针对未找到接口爆出404异常返回结构体如果没有处理的话会变成下面这样不会走全局异常处理这样的话就没有完全做到全局异常统一处理。
{timestamp: 2023-12-15T03:16:13.57600:00,status: 404,error: Not Found,message: ,path: /sysUser/detail111
}如何做到
需要关闭默认的静态资源路径映射和开启未找到异常处理
# 当HTTP状态码为4xx时直接抛出异常默认是关闭的
spring.mvc.throw-exception-if-no-handler-foundtrue# 关闭默认的静态资源路径映射默认是开启的
spring.resources.add-mappingsfalse处理之后如果调用未有的接口全局异常中Exception会处理。 /*** 系统异常*/ExceptionHandler(Exception.class)public ResultBody handleException(Exception e, HttpServletRequest request) {String requestURI request.getRequestURI();log.error(请求地址{},发生系统异常., requestURI, e);return ResultBodyUtils.fail(ErrorCode.SYSTEM_ERROR_500, requestURI);}返回结果
{code: 500,message: Interface /sysUser/detail111 internal error, please contact the administrator,data: null
}如果需要更加具体的异常处理还需要在全局异常中进行如下处理。 /*** 处理 HTTP 404 错误*/ExceptionHandler({NoHandlerFoundException.class, HttpRequestMethodNotSupportedException.class})public ResultBody handleNotFound(HttpServletRequest request, Exception e) {String requestURI request.getRequestURI();log.error(请求地址{}不存在., requestURI, e);return ResultBodyUtils.fail(ErrorCode.SYSTEM_ERROR_404, requestURI);}返回结果
{code: 404,message: Interface /sysUser/detail111 Not Found,data: null
}这样就可做到在系统中出现任何问题它的返回结构体都可做到统一。