2022年4月22日

异常处理

/**
 * 异常处理器
 */
@RestControllerAdvice
public class SoaExceptionHandler {
	private Logger logger = LoggerFactory.getLogger(getClass());
	
	//捕获异常类型
	@ExceptionHandler({ServletRequestBindingException.class, MethodArgumentNotValidException.class})
	public RespBean handleParams(Exception e) {
		String msg = null;
		// @Validated异常信息友好显示
		if (e instanceof MethodArgumentNotValidException) {
			// 需要强转
			List<ObjectError> allErrors = ((MethodArgumentNotValidException) e).getBindingResult().getAllErrors();
			msg = allErrors.stream().map(s -> s.getDefaultMessage()).collect(Collectors.joining(";"));
		}
		// 打印异常
		logger.error(msg, e);
		return RespBean.error(500, msg);
	}
}

捕获@Validated产生的异常

@Validated

MethodArgumentNotValidException异常信息友好展现

参考链接

posted @ 2022-04-22 09:12  把猫给我  阅读(31)  评论(0)    收藏  举报