例外を処理するためのより良いアプローチは何かを知りたいです。私の Web プロジェクトには、Struts 2、Spring、および Hibernate が含まれています。
例外は、StrutsAction
または Biz レイヤー、またはデータ レイヤーで発生する可能性があります。
各レイヤーで例外を処理するには?
Struts では、グローバルな例外処理を含む抽象的なデフォルト パッケージを定義することにより、(手動で処理したくない場合) フレームワークに委譲できる例外処理。
error_page.jsp
そして、この例外が発生したときにリダイレクトします。
Struts 2 および Hibernateでの例外処理にあるより詳細な説明:
通常の状況では、例外をキャッチしてログに記録し、再スローする必要があります。しかし、Struts2 では、デフォルトのアプリケーション インターセプター スタックを作成することで、キャッチされなかった例外を処理できました。
<interceptor-stack name="appDefaultStack"> <interceptor-ref name="defaultStack"> <param name="exception.logEnabled">true</param> <param name="exception.logLevel">ERROR</param> </interceptor-ref> </interceptor-stack>
このアプリケーションによって捕捉されなかった例外はログに記録され、グローバル例外マッピングによって処理されます
<global-exception-mappings> <exception-mapping exception="java.lang.Exception" result="error"/> </global-exception-mappings> > <global-results> <result name="error">/error_page.jsp</result> </global-results>