我像这样在JSF bean中调用account
EJB方法:
try{
account.someFunction(...);
}catch(SimRuntimeException e){
logger.log(Level.FATAL, "SimRuntimeException catched !");
}catch(SimNotRuntimeException e){
logger.log(Level.FATAL, "SimNotRuntimeException catched !");
}catch(Exception e){
logger.log(Level.FATAL, "Exception catched !");
}
我的异常(exception):
public class SimRuntimeException extends RuntimeException {
public SimRuntimeException() {
super();
}
}
@ApplicationException(rollback=true)
public class SimNotRuntimeException extends Exception {
public SimNotRuntimeException() {
super();
}
}
account.someFunction(...);
抛出SimRuntimeException
我摔倒时放入
Exception
块,因为我的SimRuntimeException
已包装可能是通过EJB容器转换为
EJBException
的。 account.someFunction(...);
抛出SimNotRuntimeException
时,我按预期坠落变成
SimNotRuntimeException
那么,
Exception
与@ApplicationException(rollback=true)
和RuntimeException
之间的具体区别是什么? 最佳答案
Pal's blog状态: