1. newly build GlobalExceptionHandler Global exception handling class
@ControllerAdvice
@ResponseBody
public class GlobalExceptionHandler {
/**
* handle MyException abnormal
*/
@ExceptionHandler(MyException.class)
public ReturnJson<Object> myExceptionHandler(MyException ex) {
return new ReturnJson<Object>(ResultStatusEnum.FAILURE.getCode(),
ResultStatusEnum.FAILURE.getMessage(), null);
}
/**
* handle RunTimeException abnormal
*/
@ExceptionHandler(RuntimeException.class)
public ReturnJson<Object> runtimeExceptionHandler(RuntimeException ex) {
return new ReturnJson<Object>(ResultStatusEnum.FAILURE.getCode(),
ResultStatusEnum.FAILURE.getMessage(), null);
}
}
2. Custom exception class MyException inherit RuntimeException
@Getter
public class MyException extends RuntimeException{
/*
* Status code
*/
private int code;
/*
* Message prompt
*/
private String message;
public MyException(int code, String message) {
this.code = code;
this.message = message;
}
public MyException(ResultStatusEnum resultStatusEnum) {
this.code = resultStatusEnum.getCode();
this.message = resultStatusEnum.getMessage();
}
}
3. Other classes used
@Data
public class ReturnJson<T> {
/*
* Status code
*/
private int code;
/*
* Message prompt
*/
private String message;
/*
* Return content
*/
private T info;
public ReturnJson(int code,String message ,T info) {
this.code=code;
this.message=message;
this.info=info;
}
}
@NoArgsConstructor
@AllArgsConstructor
public enum ResultStatusEnum {
/**
* Request succeeded
*/
SUCCESS(200, " Request succeeded !"),
/*
* request was aborted
*/
FAILURE(400, " request was aborted !");
@Getter
@Setter
private int code;
@Getter
@Setter
private String message;
}
Technology
Daily Recommendation