【发布时间】:2016-03-27 05:42:19
【问题描述】:
自从第一次处理这种情况以来,想知道哪种方法最好。
这里为所有DataIntegrityViolationException,发送相同的错误信息
@Override
public boolean saveParam(ParamDto dto) throws ParamException
{
try
{
return super.save(dto);
}
catch(DataIntegrityViolationException e)
{
throw new ParamException(ParamException.INTERNAL_SERVER_ERROR, messageSource.getMessage(CodeEnum.DUPLICATE_APP.getValue(), new Object[] { dto.getParamKey() }, Locale.ENGLISH));
}
catch (GenericException ge)
{
throw new ParamException(ge, ge.getRootCauseMessage());
}
}
我们如何为同一个例外提供不同的海关信息。我们需要检查消息字符串吗?
这里在DataIntegrityViolationException 下有两种不同的异常。
“错误:类型字符 (1) 的值太长”(id=172)“”
“错误:重复键值违反唯一约束“uk_param_key”\n 详细信息:键 (param_key)=(Test1) 已存在。”
【问题讨论】:
-
您可以使用 JdbcExceptionTranslator 。 stackoverflow.com/questions/2109476/…
标签: java spring hibernate exception jakarta-ee