我正在使用Spring ROO。 在我的Web应用程序中,我可以创建许多用户并保存。 我也可以更新现有用户。
对于更新方案,我们使用merge()方法更新现有数据。在数据库中,“用户名”列是唯一的。以下是该方案。
用户使用手机号码'6039274849'创建用户名'Sean'
用户创建另一个名为“Parker”的用户,手机号码为“8094563454”
在堆栈跟踪中,我可以看到以下异常是原因
我尝试了以下操作
public String merge()
{
try{
//code to merge
}
catch(????? e){
throw e;
}
}
我试图在'????'中添加上述5个例外。但我无法抓住它。
任何人都可以告诉我需要添加哪个例外'????'从上面的列表中捕获异常?
P.S:我正在使用Spring ROO。所以我在更改.aj文件中的代码。请不要将此问题视为重复。在结束这个问题之前,我期待任何人回答我的问题。答案 0 :(得分:2)
作为最后的手段,您可以抓住通用exception
public String merge()
{
try{
//code to merge
}
catch(Exception e){
//handle e here.
}
}
答案 1 :(得分:1)
ConstraintValidationException
。
请注意,通常在Spring / Hibernate应用程序中,冒出代码的异常是导致事务回滚的原因。如果你发现异常,你可能会阻止这种情况,这可能会导致数据不一致。
答案 2 :(得分:1)
如果有疑问,我会尝试捕捉Throwable并添加断点或注销以确切了解它是什么。然后累积更改代码。
答案 3 :(得分:1)
我最近有同样的问题。它似乎是自己的异常类中的spring换行异常。
我用以下方法解决了这个问题:
try {
...
}
catch(Exception e){
System.out.println(e.getClass().getName());
}
通过它你会发现真正抛出了什么异常;