目次 > 第2章 Server(Web)版チュートリアル > 2.10 例外処理(システム例外) > 2.10.1 システム例外ハンドリングの確認
2.10.1 システム例外ハンドリングの確認
システム例外とは、データベースやフレームワークで発生する実行時例外を指し、ビジネスロジックで例外処理を記述する必要はない。
Server(Web)版では、システム例外に対するデフォルトのハンドラクラスを提供しており、ブランクプロジェクトでは予めデフォルトハンドラを設定した状態で提供している。
本項では、デフォルトのハンドラクラスの設定を確認する。
手順
本項では以下の作業が必要になる。
(1) Struts設定ファイルの確認
ハンドリングの設定は、Struts設定ファイルに記述する。
- “terasoluna-spring-thin-blank\webapps\WEB-INF\struts-config.xml”を開き、以下の例外ハンドリングの設定が記述されていることを確認する。
<!-- ======================================== グローバル例外ハンドリング定義 --> <global-exceptions> <!-- 設定例 --> <exception key="errors.default.mesasge" path="/error.jsp" className="jp.terasoluna.fw.web.struts.action.ExceptionConfigEx" handler="jp.terasoluna.fw.web.struts.action.SystemExceptionHandler" type="jp.terasoluna.fw.exception.SystemException"> <set-property property="logLevel" value="error"/> </exception> <exception key="errors.default.mesasge" path="/error.jsp" className="jp.terasoluna.fw.web.struts.action.ExceptionConfigEx" handler="jp.terasoluna.fw.web.struts.action.DefaultExceptionHandler" type="java.lang.Exception"> <set-property property="logLevel" value="error"/> </exception> </global-exceptions>
上記の設定では、Server(Web)版で発生する例外(SystemException)に対するハンドリングの設定と、その他の例外(Exception)に対するハンドリングの設定である。
例外ハンドリングは<global-exceptions>要素内に、<exception>要素を利用して定義する。以下に<exception>要素の属性を示す。
属性 | 説明 |
key | エラー画面に表示するメッセージキーを指定する。 |
path | エラー時の遷移先を指定する。 |
className | 例外コンフィグクラス名を指定する(固定)。 |
handler | ハンドラクラスを指定する。 |
type | ハンドリング対象の例外クラスを指定する。 |
Server(Web)版が提供するハンドラクラスは、例外発生時のログ出力とエラー画面への遷移を行う。SystemExceptionHandlerはシステム例外に対応したハンドラクラスであり、DefaultExceptionHandlerは汎用的な例外に対応したハンドラクラスである。
両クラスとも、<set-property>要素でハンドラクラスが出力するログの出力レベルを指定することができる。