# 异常捕获

全局异常捕获不需要显式开启,在项目中加入了易水风萧通用组件后会自动启动。

对于某些需要自定义提示信息的异常来说,可以根据下面的配置进行修改

yishuifengxiao.error.map.Exception的名字=提示信息

其中Exception的名字就是项目中需要捕获的异常的名称,例如ConstraintViolationExceptionDataIntegrityViolationExceptionDuplicateKeyException,对于多个需要提示的错误,配置成多行即可,例如

yishuifengxiao.error.map.ConstraintViolationException=全局异常捕获到异常信息了
yishuifengxiao.error.map.DataIntegrityViolationException=全局异常捕获到异常信息了
yishuifengxiao.error.map.DuplicateKeyException=全局异常捕获到异常信息了

在有些时候,仅仅使用类的简称不能分辨出具体的信息,此时可以配置全称提示,例如

yishuifengxiao.error.full.com.demo.DemoException=自定义异常提示信息

# 显示使用

如果需要在其他地方显示地提取异常中的信息,可以通过com.yishuifengxiao.common.support.ErrorUtil这个工具进行提取,他的主要API如下:


	/**
	 * <p>
	 * 根据异常从配置信息中获取异常信息
	 * </p>
	 * 
	 * 提取过程如下
	 * <ul>
	 * <li>先根据异常类的完整名字获取异常提示信息</li>
	 * <li>如果第一步中没有获取异常信息,则根据异常类的名字(不区分大小)获取异常提示信息</li>
	 * <li>如果还是没有获取到异常提示信息,就是用原来的异常类里的信息</li>
	 * </ul>
	 * 
	 * @param e 异常信息
	 * @return 异常提示信息
	 */
	public static String getErrorMsg(Throwable e);
	/**
	 * <p>
	 * 根据异常从配置信息中获取异常信息
	 * </p>
	 * 
	 * 提取过程如下
	 * <ul>
	 * <li>先根据异常类的完整名字获取异常提示信息</li>
	 * <li>如果第一步中没有获取异常信息,则根据异常类的名字(不区分大小)获取异常提示信息</li>
	 * <li>如果还是没有获取到异常提示信息,且用户配置的提示信息不为空,则使用用户配置的第一个提示信息作为异常提示信息</li>
	 * <li>如果还是没有获取到异常提示信息,就是用原来的异常类里的信息</li>
	 * </ul>
	 * 
	 * @param e          异常信息
	 * @param defaultMsg 自定义提示信息
	 * @return 异常提示信息
	 */
	public static String getErrorMsg(Throwable e, String defaultMsg) ;
Last Updated: 1/19/2021, 10:39:52 AM