New file |
| | |
| | | package com.dy.common.webUtil; |
| | | |
| | | import io.swagger.v3.oas.annotations.Hidden; |
| | | import io.swagger.v3.oas.annotations.responses.ApiResponse; |
| | | import io.swagger.v3.oas.annotations.responses.ApiResponses; |
| | | import io.swagger.v3.oas.annotations.tags.Tag; |
| | | import jakarta.servlet.RequestDispatcher; |
| | | import jakarta.servlet.http.HttpServletRequest; |
| | | import org.springframework.boot.web.servlet.error.ErrorController; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestMethod; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | /** |
| | | * 全局出错处理,web请求进入Controller之前发生的错误及异常都由此类处理, |
| | | * 例如请求路径不正确,以及在Filter中抛出的异常等 |
| | | * 而在Controller中抛出的异常由GlExceptionHandler或GlExceptionAspect处理 |
| | | */ |
| | | //此错误处理类并不对外提供服务,所以其不用暴露接口 |
| | | @Hidden //在SpringDoc中隐藏本接口API |
| | | @Tag(name = "全局出错处理", description = "web请求进入Controller之前发生的错误及异常都由此类处理") |
| | | @ApiResponses(@ApiResponse(responseCode = ResultCodeMsg.RsCode.ERROR_CODE, description = "返回出错信息")) |
| | | @RequestMapping(produces = "application/json") |
| | | @RestController |
| | | public class GlErrorCtrl implements ErrorController { |
| | | //此错误处理类并不对外提供服务,所以其不用暴露接口 |
| | | //@Operation(summary = "错误处理方式", description = "返回BaseResponse类型的数据") |
| | | @RequestMapping(value = "/error", method = RequestMethod.GET) |
| | | public BaseResponse error(HttpServletRequest request) { |
| | | // get error status code |
| | | Object status = request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE); |
| | | /* |
| | | if (status != null) { |
| | | // handle 404 error |
| | | if (status.toString().equals("404")) { |
| | | return BaseResponseUtils.buildFail("error-404"); |
| | | } |
| | | // handle 500 error |
| | | else if (status.toString().equals("500")) { |
| | | return BaseResponseUtils.buildFail("error-500"); |
| | | } |
| | | } |
| | | */ |
| | | return BaseResponseUtils.buildFail("进入Controller之前发生错误" + (status==null?"":(",错误码:" + status.toString()))) ; |
| | | } |
| | | |
| | | } |