java-未捕获异常
我正在使用SpringRoo。 在我的web应用程序中,我可以创建许多用户并保存它们。 我还可以更新现有用户 对于更新场景,我们使用merge()方法更新现有数据。在数据库中,“用户名”列是唯一的。以下是场景java-未捕获异常,java,exception,spring-roo,Java,Exception,Spring Roo,我正在使用SpringRoo。 在我的web应用程序中,我可以创建许多用户并保存它们。 我还可以更新现有用户 对于更新场景,我们使用merge()方法更新现有数据。在数据库中,“用户名”列是唯一的。以下是场景 用户创建了一个手机号码为“6039274849”的用户名“Sean” 用户创建另一个名为“Parker”的用户,手机号码为“8094563454” 当用户试图用“Sean”更新第二个用户“Parker”时,我遇到了异常 在stacktrace中,我可以看到以下异常是原因 由Constrai
public String merge()
{
try{
//code to merge
}
catch(????? e){
throw e;
}
}
我试图在“??”中添加上述5个例外。但我还是抓不住
有人能告诉我需要在“??”中添加哪个异常来捕获上面列表中的异常吗
我用的是SpringRoo。所以我正在修改.aj文件中的代码。请不要重复回答这个问题。在结束这个问题之前,我期待着任何人对我的问题给出答案。嗯,你不是在重复捕获中的异常吗?它应该是跟踪中的“最近”异常,因此
ConstraintValidationException
请注意,通常在Spring/Hibernate应用程序中,代码中冒出的异常会导致事务回滚。如果捕获到异常,您可能会阻止异常,这可能会导致数据不一致。作为最后的手段,您可以捕获通用的异常
当有疑问时,我会尝试捕捉一个可丢弃的东西,或者添加断点,或者将其注销,以查看它到底是什么。然后相应地更改代码。我最近也遇到了同样的问题。似乎spring wrap异常在它自己的异常类中。
我用以下方法解决了这个问题:
try {
...
}
catch(Exception e){
System.out.println(e.getClass().getName());
}
这样,您将发现真正抛出了什么异常 我试着用“例外”代替“例外”,效果很好。但是我不想用“Exception e”来捕捉。我想捕获特定的异常。然后在catch块中执行
System.out.printn(e)
以确定抛出的是哪个特定异常,它应该说:java.lang.NullPointerException
有什么原因不能执行一次尝试和多次catch语句吗?在Spring Roo中,所有异常都被抛出并转发到web-mvc-config.xml和web.xml中配置的错误页面。所以我必须抛出异常。我只想重新抛出,因为我想向用户显示错误页面(带有相关错误消息)。那么为什么要首先捕获它呢?
try {
...
}
catch(Exception e){
System.out.println(e.getClass().getName());
}