上一篇:异常情况下如何成功返回数据有些情况还是会出现。
如果在找不到接口时收到404 异常,并且未处理返回的结构,则:在这种情况下,全局异常并没有完全统一。
{'时间戳':'2023-12-15T03:16:13.576+00:00','状态': 404,'错误':'未找到','消息':'','路径':'/sysUser/detail111' }
如何做到
必须关闭默认静态资源路径映射,并且必须启用未找到异常处理。
# 如果HTTP状态码为4xx,则直接抛出异常。默认关闭。 spring.mvc.throw-Exception-if-no-handler-found=true # 关闭默认静态资源路径映射。我打开了spring.resources .add-mappings=false
处理后,如果调用未知接口,则会以全局异常处理。
/*** 系统异常*/@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': '接口/sysUser/detail111外部错误,请联系管理员', 'data': null} 如果需要更具体的异常处理,还必须执行以下操作:有。全局异常。
/*** 处理HTTP 404 错误*/@ExceptionHandler({NoHandlerFoundException.class, HttpRequestMethodNotSupportedException.class}) public ResultBody handleNotFound(HttpServletRequest request, Exception e) { String requestURI=request.getRequestURI(); 存在't。 ', requestURI, e); return ResultBodyUtils.fail(ErrorCode.SYSTEM_ERROR_404, requestURI);}返回结果:
{ 'code': 404, 'message': 'Interface /sysUser/detail111 Not Found', 'data': null} 这允许在出现系统问题时使用统一的返回结构。
版权声明:本文由今日头条转载,如有侵犯您的版权,请联系本站编辑删除。