spring @ControllerAdvice handle exceptions

@ControllerAdvice
public class AdviceController {
    private Logger logger = LogManager.getLogger();
    /** 业务异常  */
    private static final int FAIL_STATUS = 400;

    /** 异常  */
    private static final int ERROR_STATUS = 500;


    /** 异常处理 */
    @ExceptionHandler(Exception.class)
    @ResponseBody
    public ObjectRestResponse exceptionHandler(HttpServletRequest request, HttpServletResponse response,
                                                     Exception ex) throws Exception {
        ObjectRestResponse restResponse = new ObjectRestResponse();
        System.out.println("捕获异常:" + ex.getLocalizedMessage());
        logger.error("捕获异常:" + ex.getLocalizedMessage());
        if (ex instanceof RuntimeException) {
            restResponse.setStatus(FAIL_STATUS);
            restResponse.setMessage(ex.getMessage());
        }
        else {
            restResponse.setStatus(ERROR_STATUS);
            restResponse.setMessage(ex.getMessage());
        }
        return restResponse;
    }
}
Published 18 original articles · won praise 5 · Views 6711

Guess you like

Origin blog.csdn.net/qq_28687183/article/details/104710084