use*_*115 3 java exception jpa-2.0
关注来源:
public void create ()
{
try {
doA () {
} catch (PersistenceException e) {}
try (doB) ();
} catch (PersistenceException e) {}
}
Run Code Online (Sandbox Code Playgroud)
调用方法doA将导致抛出NonUniqueResultException.调用方法doB将导致抛出EntityExistsException.有两个选项描述在应用程序中调用创建的方法时会发生什么,使用容器管理的事务?(选择两项):
doB()永远不会调用方法.doA()执行后继续.doB()执行后继续.doA()调用时,当前事务将标记为回滚.doB()调用时,当前事务将标记为回滚.在我看来,正确的答案是B,E.
假设语法正确的版本:
public void create() {
try {
doA ();
} catch (PersistenceException e) {}
try {
doB();
} catch (PersistenceException e) {}
}
Run Code Online (Sandbox Code Playgroud)
A.方法doB()永远不会被调用是false声明,因为抛出了NonUniqueResultException,这是捕获的PersistenceException,而下一步是调用doB().
B.当doA()执行为true 后,当前事务将继续,因为如文档所述,NonUniqueResultException不会导致事务被标记为回滚.
C.当doB()执行为false时,当前事务将继续,因为EntityExistsException标记用于回滚的活动事务.
D.当调用doA()时,当前事务将被标记为回滚,因为告知索赔B的原因是错误的,NonUniqueResultException不标记事务以进行回滚.
E.当doB()被调用为true时,当前事务将被标记为回滚,因为理由告诉C,EntityExistsException标记事务以进行回滚.
| 归档时间: |
|
| 查看次数: |
314 次 |
| 最近记录: |