|
@ -33,30 +33,24 @@ public class GlobalExceptionHandler {
|
|
@ResponseBody
|
|
@ResponseBody
|
|
public Envelop handle(HttpServletResponse response, Exception e) throws IOException {
|
|
public Envelop handle(HttpServletResponse response, Exception e) throws IOException {
|
|
Envelop envelop = new Envelop();
|
|
Envelop envelop = new Envelop();
|
|
if (e instanceof NoHandlerFoundException) {
|
|
|
|
//response.setStatus(HttpStatus.NOT_FOUND.value());
|
|
|
|
|
|
if (e instanceof NoHandlerFoundException) { //404
|
|
envelop.setDesc(e.getMessage());
|
|
envelop.setDesc(e.getMessage());
|
|
envelop.setCode(HttpStatus.NOT_FOUND.value());
|
|
envelop.setCode(HttpStatus.NOT_FOUND.value());
|
|
} else if (e instanceof HttpRequestMethodNotSupportedException){
|
|
|
|
//response.setStatus(HttpStatus.METHOD_NOT_ALLOWED.value());
|
|
|
|
|
|
} else if (e instanceof HttpRequestMethodNotSupportedException){ //请求方法有误
|
|
envelop.setDesc(e.getMessage());
|
|
envelop.setDesc(e.getMessage());
|
|
envelop.setCode(HttpStatus.METHOD_NOT_ALLOWED.value());
|
|
envelop.setCode(HttpStatus.METHOD_NOT_ALLOWED.value());
|
|
} else if (e instanceof MissingServletRequestParameterException) {
|
|
|
|
//response.setStatus(HttpStatus.BAD_REQUEST.value());
|
|
|
|
|
|
} else if (e instanceof MissingServletRequestParameterException) { //参数有误
|
|
envelop.setDesc(e.getMessage());
|
|
envelop.setDesc(e.getMessage());
|
|
envelop.setCode(HttpStatus.BAD_REQUEST.value());
|
|
envelop.setCode(HttpStatus.BAD_REQUEST.value());
|
|
} else if (e instanceof FeignException) { //执行Feign失败的时候默认当前服务做为网关执行请求的时候,从上游服务器接收到无效的响应
|
|
} else if (e instanceof FeignException) { //执行Feign失败的时候默认当前服务做为网关执行请求的时候,从上游服务器接收到无效的响应
|
|
//response.setStatus(HttpStatus.BAD_GATEWAY.value());
|
|
|
|
envelop.setDesc("Execute Feign: " + e.getMessage());
|
|
envelop.setDesc("Execute Feign: " + e.getMessage());
|
|
envelop.setCode(HttpStatus.BAD_GATEWAY.value());
|
|
envelop.setCode(HttpStatus.BAD_GATEWAY.value());
|
|
} else if (e instanceof ApiException) { //业务逻辑的异常默认为请求成功,但是前端需要判断成功标识
|
|
|
|
|
|
} else if (e instanceof ApiException) { //业务逻辑异常
|
|
ApiException apiException = (ApiException) e;
|
|
ApiException apiException = (ApiException) e;
|
|
//response.setStatus(apiException.httpStatus().value());
|
|
|
|
envelop.setDesc(e.getMessage());
|
|
|
|
envelop.setCode(apiException.errorCode());
|
|
|
|
|
|
envelop.setDesc(apiException.getErrorDesc());
|
|
|
|
envelop.setCode(apiException.getErrorCode());
|
|
return envelop; //此异常不进行日志记录
|
|
return envelop; //此异常不进行日志记录
|
|
} else {
|
|
} else {
|
|
//response.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value());
|
|
|
|
envelop.setDesc(e.getMessage());
|
|
envelop.setDesc(e.getMessage());
|
|
envelop.setCode(HttpStatus.INTERNAL_SERVER_ERROR.value());
|
|
envelop.setCode(HttpStatus.INTERNAL_SERVER_ERROR.value());
|
|
}
|
|
}
|