私はDAOで作業していますが、例外を処理する最良の方法が何であるか把握できません。 .persist()を使用している間は、3つの例外、EntityExistsException/IllegalArgumentException/TransactionRequiredExceptionが発生する可能性があります。JavaEE EntityManagerの例外処理
私は例外をキャッチしてスローするための最良の方法が何であるか疑問に思っています(上位レベルで処理したい)。
単純な例外をキャッチしてスローするか、上記の例外を別々にキャッチする方が効率的ですか?
まず方法、私は例外をキャッチし、それを投げる:
public void addAccount(final Account accountToAdd) throws AccountJpaException {
try {
em.persist(accountToAdd);
} catch (Exception e) {
throw new AccountJpaException(e);
}
}
}
第二の方法:私は
public void addAccount(final Account accountToAdd) throws AccountJpaException, AccountExistsException {
try {
em.persist(accountToAdd);
} catch (EntityExistsException e) {
throw new AccountExistsException(e);
}catch(IllegalArgumentException e){
throw new AccountJpaException(e);
}catch(TransactionRequiredException e){
throw new AccountJpaException(e);
}
}
}
個別にそれらの一つ一つをキャッチし、あなたのアドバイスをありがとう!
これらのうちのどれかを実際に捕まえるべきではありません。特に 'IllegalArgumentException'や' TransactionRequiredException'ではありません。 – Kayaman
なぜですか?未処理の例外はいくつかの混乱を招くかもしれないか、私はこの点で全く間違っていますか? – raik
あなたの質問が言うように、あなたはより高いレベルでそれらを扱うべきです*。 –