目次 > 第3章 サンプルアプリケーション構築 > 3.6 エラー画面遷移
3.6 エラー画面遷移
概要
本節では、Server Frameworkが提供するエラー画面遷移機能を用いて、システムで例外が発生した場合に、例外の種類に応じてエラー画面に遷移させる方法を学習する。
Server Frameworkがスローする画面遷移エラー例外や、セッションタイムアウト例外などは、エラー画面遷移機能を用いてエラー画面に遷移させる。詳細は、機能説明書『WA-04 エラー画面遷移機能』を参照のこと。
本節では、メニュー画面の「例外をスローする」ボタンのクリックイベントでApplicationExceptionをスローし、エラー画面遷移機能を用いてエラー画面に遷移させる演習を行う。
動作イメージ
図3.6-1 動作イメージ
- 対象画面
- メニュー画面(MenuForm.aspx)
- 処理概要
- (クライアント)メニュー画面で「例外をスローする」ボタンを押下する。
- (サーバ)MenuForm.aspx内で例外をスローする。
- (サーバ)エラー画面遷移機能が実行され、エラー画面遷移設定ファイルの定義をもとに、例外に対応するエラー画面へ遷移する。
- (クライアント)エラー画面を表示する。
作業手順
1. メニュー画面のイベントの実装
1.1 「例外をスローする」ボタンのクリックイベント
メニュー画面(MenuForm.aspx)に配置した「例外をスローする」ボタンのクリックイベントを追加する。
図3.6-2 「例外をスローする」ボタンのクリックイベントの追加
1.2. 「例外をスローする」ボタンのクリックイベントの実装
クリックイベントにApplicationExceptionをスローするロジックを実装する。
MenuForm.aspx.cs
/// <summary> /// ApplicationException例外をスローする。 /// </summary> /// <param name="sender">イベントのソース。</param> /// <param name="e">イベントデータを格納している<see cref="EventArgs"/>。</param> protected void ButtonException_Click(object sender, EventArgs e) { throw new ApplicationException(); }
2. 画面遷移設定ファイルの設定
画面遷移設定ファイル(Config\PageConfiguration.config)に、アプリケーションエラー画面(ExceptionForm.aspx)の定義を追加する。画面遷移IDには"ExceptionForm"を指定する。
<!-- アプリケーションエラー画面 --> <page name="ExceptionForm" path="/Form/ExceptionForm.aspx" />
設定完了後の画面遷移設定ファイルを以下に記す。
PageConfiguration.config
<?xml version="1.0" encoding="utf-8" ?> <!-- ページ設定ファイルの設定 --> <pageConfiguration xmlns="http://www.terasoluna.jp/schema/PageSchema.xsd"> <!-- 計算画面 --> <page name="CalcForm" path="/Form/CalcForm.aspx" /> <!-- 商品選択画面 --> <page name="SelectItemForm" path="/Form/SelectItemForm.aspx" /> <!-- 商品確認画面 --> <page name="ConfirmItemForm" path="/Form/ConfirmItemForm.aspx" /> <!-- 商品確定画面 --> <page name="CompleteItemForm" path="/Form/CompleteItemForm.aspx" /> <!-- ログオン画面 --> <page name="LogonForm" path="/Form/LogonForm.aspx" /> <!-- メニュー画面 --> <page name="MenuForm" path="/Form/MenuForm.aspx" /> <!-- アプリケーションエラー画面 --> <page name="ExceptionForm" path="/Form/ExceptionForm.aspx" /> </pageConfiguration>
3. エラー画面遷移設定ファイルの設定
ポイント!
エラー画面遷移設定ファイル(Config\ExceptionTransition.config)に、 ApplicationException発生時の遷移先IDを指定する。遷移先IDには2. 画面遷移設定ファイルの設定で指定した"ExceptionForm"を指定する。
ExceptionTransition.config
<?xml version="1.0" encoding="utf-8"?> <!--エラー画面遷移設定ファイルの設定--> <exceptionTransitionConfiguration xmlns="http://www.terasoluna.jp/schema/ExceptionTransitionSchema.xsd"> <!-- ApplicationException発生時の遷移先を指定する --> <exceptionTransition exceptionType="System.ApplicationException" nextPage="ExceptionForm"/> <!-- <exceptionTransition exceptionType="System.Web.HttpException" nextPage="Error1" /> <exceptionTransition exceptionType="TERASOLUNA.Fw.Web.HttpModule.SessionTimeoutException" nextPage="Error1"/> <exceptionTransition exceptionType="TERASOLUNA.Fw.Web.HttpModule.InvalidTransitionException" nextPage="Error2"/> --> </exceptionTransitionConfiguration>
動作確認
- サーバアプリケーションを起動する(TutorialServerWebプロジェクトの発行)。
- ブラウザのアドレス欄のURLに「http://localhost/tutorialServerWeb/Form/LogonForm.aspx」を入力し、移動ボタンをクリックし、正常にログオン画面が表示されることを確認する。
- ログオン画面でユーザID "tera"、パスワード "soluna" と入力し、「ログオン」ボタンを押下する。
- メニュー画面の「例外をスローする」ボタンを押下する。
- アプリケーション例外画面に遷移することを確認する。
図3.6-3 ログオン画面⇒メニュー画面