Spring全局异常处理

@Controller注解

@ControllerAdvice
public class ExceptionControllerAdvice implements Serializable{

    private final static Logger LOGGER = LoggerFactory.getLogger(ExceptionControllerAdvice.class);

    @ExceptionHandler(Exception.class)
    @ResponseStatus(HttpStatus.OK)
    @ResponseBody
    public Result handleException(Exception ex){
        LOGGER.error(ex.getMessage(), ex);
        Result result = new Result();
        if(ex instanceof UnsatisfiedServletRequestParameterException) {
            result.setCode(ErrorCode.METHOD_NOT_FOUND.getCode());
            result.setMessage(ErrorCode.METHOD_NOT_FOUND.getMessage());
            return result;
        }
        if(ex instanceof CanalExecption){
            result.setCode(ErrorCode.SYSTEM_ERROR.getCode());
            result.setMessage(ex.getMessage());
        }else{
            result.setCode(ErrorCode.SYSTEM_ERROR.getCode());
            result.setMessage(ErrorCode.SYSTEM_ERROR.getMessage());
        }
        return result;
    }
}

 

posted @ 2018-01-22 14:05  ByteNotes  阅读(146)  评论(0编辑  收藏  举报