异常处理机制
1.新建自定义异常类,继承MyException
public class PduMergeDataException extends MyException {
private static final long serialVersionUID = 1L;
//这两个参数用来在日志中输出
protected static String innerCode = MyConstants.RETURN_CODE_PDU_MERGE_DATA_ERROR;
protected static String innerMsg = MyConstants.RETURN_MSG_PDU_MERGE_DATA_ERROR;
public PduMergeDataException(String val) {
super(innerCode, innerMsg+"("+val+")");
}
}
- 通用异常MyException类
public class MyException extends BaseException {
private String innerCode = "";
private String innerMsg = "";
public MyException(String innerMsg) {
super("api-ws", null, null, innerMsg);
this.innerCode = MyConstants.RETURN_CODE_OTHER_EXCEPTION;
this.innerMsg = innerMsg;
}
//自定义异常类重写的是这个方法
public MyException(String innerCode, String innerMsg) {
super("api-ws", innerCode, null, innerMsg);
this.innerCode = innerCode;
this.innerMsg = innerMsg;
}
public String getInnerCode() {
return innerCode;
}
public String getInnerMsg() {
return innerMsg;
}
}
- 自定义异常处理类MyExceptionHandler
@RestControllerAdvice
@Order(Ordered.HIGHEST_PRECEDENCE)
public class MyExceptionHandler {
private static final Logger log = LoggerFactory.getLogger(MyExceptionHandler.class);
private static String resultError(String innerCode, String innerMsg, String outerCode, String outerMsg) {
String returnErrorMsg = ReturnJsonFormat.jsonStr(outerCode, outerMsg);
log.error(String.format("innerMsg=%s, %s, returnErrorMsg=%s"
, innerCode, innerMsg, returnErrorMsg));
return returnErrorMsg;
}
//处理自定义异常类
@ExceptionHandler(PduMergeDataException.class)
public String handlePduMergeDataException(PduMergeDataException e) {
String outerCode = MyConstants.RETURN_CODE_PDU_MERGE_DATA_ERROR;
String outerMsg = MyConstants.RETURN_MSG_PDU_MERGE_DATA_ERROR;
return resultError(e.getInnerCode(), e.getInnerMsg(), outerCode, outerMsg);
}
}

浙公网安备 33010602011771号