0

未チェックの例外で何かを理解していないと思います。

春/休止状態を使用しています。

トランザクションでは、NullPointerException (チェックされていない) をキャッチしていますが、最後にトランザクションはロールバックされません。

NPE をスローするのと同じメソッド内で NPE をキャッチするためですか? これは、スローしたメソッドとは別のメソッドでキャッチされた IllegalArgumentException をスローするコードの他の部分との唯一の相違点です (ロールバックで終了します)。

ありがとうございました、

4

1 に答える 1

2

キャッチされていない例外がトランザクション プロキシを通過した場合、Spring はトランザクションをロールバックします。

ラップされたメソッド内で例外をキャッチすると、トランザクションは自動的にロールバックされません。

なんらかの理由で例外をキャッチする必要がある場合は、例外を再スローするか、別のもの (メソッドのコントラクトを考慮すると意味のあるもの) をスローするか、トランザクションを手動でロールバックすることができます。この最後のオプションは、スプリングの透明性を損なうことに注意してください。

于 2011-07-08T10:30:16.767 に答える