Spring Boot 如何自定义返回错误码错误信息
说明
•在实际的开发过程中,很多时候要定义符合自己业务的错误码和错误信息,而不是统一的而不是统一的下面这种格式返回到调用端
INTERNAL_SERVER_ERROR(500,"InternalServerError"),
下面我们来看看如何将我们自定义的错误码和错误信息返回到调用端。
1自定义错误码
•首先我们要定义一个枚举类
publicenumErrorEnum{
/*
*错误信息
**/
E_20011(20011,"缺少必填参数"),
;
privateIntegererrorCode;
privateStringerrorMsg;
ErrorEnum(IntegererrorCode,StringerrorMsg){
this.errorCode=errorCode;
this.errorMsg=errorMsg;
}
publicIntegergetErrorCode(){
returnerrorCode;
}
publicStringgetErrorMsg(){
returnerrorMsg;
}
2定义一个异常类
•定义一个异常类继承RuntimeException类
publicclassBusinessExceptionextendsRuntimeException{
privatestaticfinallongserialVersionUID=1L;
privateIntegercode;
/**
*@paramerrorEnum以错误的ErrorEnum做参数
*/
publicBusinessException(ErrorEnumerrorEnum){
super(errorEnum.getErrorMsg());
this.code=errorEnum.getErrorCode();
this.resultJson=CommonUtil.errorJson(errorEnum);
}
publicIntegergetCode(){
returncode;
}
publicvoidsetCode(Integercode){
this.code=code;
}
}
3定义一个异常返回的模板类
•模板类定义了如何将异常通过什么形式进行返回。
publicclassExceptionResponse{
privateStringmessage;
privateIntegercode;
publicExceptionResponse(Integercode,Stringmessage){
this.message=message;
this.code=code;
}
publicstaticExceptionResponsecreate(Integercode,Stringmessage){
returnnewExceptionResponse(code,message);
}
publicIntegergetCode(){
returncode;
}
publicStringgetMessage(){
returnmessage;
}
}
4定义全局处理Controller层异常
@ControllerAdvice
@Slf4j
publicclassExceptionHandler{
@ResponseBody
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
@ExceptionHandler(Exception.class)
publicExceptionResponsehandleException(Exceptionex){
if(exinstanceofBusinessException){
log.warn(ex.getMessage(),ex);
BusinessExceptionbusinessException=(BusinessException)ex;
returnExceptionResponse.create(businessException.getCode(),businessException.getMessage());
}else{
log.error(ex.getMessage(),ex);
returnExceptionResponse.create(HttpStatus.INTERNAL_SERVER_ERROR.value(),ex.getMessage());
}
}
}
5演示效果
•定义Controller层
@PostMapping("test/exception")
publicStringtestException(){
thrownewBusinessException(ErrorEnum.E_20011);
}
•通过postMan调用返回结果为
{"message":"缺少必填参数","code":20011}
总结
以上所述是小编给大家介绍的SpringBoot如何自定义返回错误码错误信息,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语