如何区分导致异常的错误?我想根据我得到的错误类型做出不同的事情。像这样:
try {
entityManager.getTransaction().begin();
entityManager.persist(entity);
entityManager.getTransaction().commit();
} catch (PersistenceException exception) {
if(DUPLICATE_RECORD)
//do something about it
else if(SOME_VALUE_IS_NULL)
//do something about it
else if(SOME_VALUE_IS_OUT_OF_RANGE)
//do something about it
...
}
答案 0 :(得分:2)
PersistenceException
有子类,您可以单独捕获,例如:
在抓住PersistenceException
之前,分别抓住您关心的其中一个。
例如:
try {
....
}
catch (EntityExistsException exception) {
....
}
catch (PersistenceException exception) {
....
}
EntityExistsException
可能是您想要捕获的异常,以找出您尝试持久存在的对象何时存在:
当调用EntityManager.persist(Object)并且实体已经存在时,由持久性提供程序抛出。