-1

アプリを Struts 1.2 から Springs 3.0 に変換しています。そのため、Struts 2 コードで行われる例外処理に変更を加えています。

私の理解によると、これが私たちが行う必要がある方法です。

  1. @ExceptionHandler は、Springs のコントローラー層でのみ使用できます。
  2. Unchecked Exceptions の処理に AOP を使用できます。
  3. Struts のチェック済み例外はそのまま残り、未チェック例外に変換できます

今、私は次の質問があります。

  1. コードで未チェックの例外を処理する必要がないことを除いて、未チェックの例外を処理するために AOP を使用する利点は何ですか?
  2. チェックされた例外をチェックされていない例外に変換する利点は何ですか?
  3. 先に進んで、ストラットのチェック済み例外を未チェック例外に変換し、AOP を使用する必要がありますか?
  4. Spring 3.0 で例外を処理するためのより良いアプローチは何でしょうか?
4

2 に答える 2

4

例外処理のためのSpringの機能を見てください:

http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/mvc.html#mvc-exceptionhandlers

この考え方は、AOPを使用するためのアプローチに似ていますが、必要な構成がはるかに少なくなります。基本的に、コードがスローするあらゆる種類のチェックされていない例外のハンドラーを登録します。これにより、例外がスローされたかどうかをアサートし、そのロジックを例外の処理と回復から切り離すことで、コードをテストできます。

于 2013-03-04T14:37:29.580 に答える
1

@ExceptionHandler 値は、例外タイプの配列に設定できます。リスト内のいずれかのタイプに一致する例外がスローされた場合、一致する @ExceptionHandler で注釈が付けられたメソッドが呼び出されます。注釈値が設定されていない場合、メソッド引数としてリストされている例外タイプが使用されます。

Spring は内部で AOP を使用しますが、これに取り組む必要はありません。すべてのボルトとナットのコードが表示されます。

于 2015-01-25T21:52:17.143 に答える