私はaccountJSFBeanで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 !");
}
私の例外:
public class SimRuntimeException extends RuntimeException {
public SimRuntimeException() {
super();
}
}
@ApplicationException(rollback=true)
public class SimNotRuntimeException extends Exception {
public SimNotRuntimeException() {
super();
}
}
account.someFunction(...);スローすると、おそらくEJBコンテナにラップされているため、ブロックSimRuntimeExceptionに陥ります。ExceptionSimRuntimeExceptionEJBExceptionaccount.someFunction(...);投げるときSimNotRuntimeException私は予想通りに落ちますSimNotRuntimeException
Exceptionでは、具体的にはwith@ApplicationException(rollback=true)とRuntimeExceptionpleaseの違いは何ですか?