自定义异常

global error

@Data
@NoArgsConstructor
@AllArgsConstructor
public class GlobalException extends RuntimeException {
	//这个是留给后面用的 什么异常自己注入 
	private RespBeanEnum respBeanEnum;
}

统一异常处理 @RestControllerAdvice

@RestControllerAdvice
public class GlobalExceptionHandler {

	@ExceptionHandler(Exception.class)
	public RespBean ExceptionHandler(Exception e) {
		if (e instanceof GlobalException) {
			GlobalException ex = (GlobalException) e;
			return RespBean.error(ex.getRespBeanEnum());
		} else if (e instanceof BindException) {
			//校验主键 绑定异常
			BindException ex = (BindException) e;
			RespBean respBean = RespBean.error(RespBeanEnum.BIND_ERROR);
			respBean.setMessage("参数校验异常:" + ex.getBindingResult().getAllErrors().get(0).getDefaultMessage());
			return respBean;
		}
		return RespBean.error(RespBeanEnum.ERROR);
	}

}

这里的场景是 因为手机号码校验不成功 所以是bindexception 会获得那个异常

posted @ 2021-09-16 23:17  常熟阿诺  阅读(36)  评论(0编辑  收藏  举报