目次 > 第3章 サンプルアプリケーション構築 > 3.6 エラー画面遷移

3.6 エラー画面遷移

概要

本節では、Server Frameworkが提供するエラー画面遷移機能を用いて、システムで例外が発生した場合に、例外の種類に応じてエラー画面に遷移させる方法を学習する。
Server Frameworkがスローする画面遷移エラー例外や、セッションタイムアウト例外などは、エラー画面遷移機能を用いてエラー画面に遷移させる。詳細は、機能説明書『WA-04 エラー画面遷移機能』を参照のこと。
本節では、メニュー画面の「例外をスローする」ボタンのクリックイベントでApplicationExceptionをスローし、エラー画面遷移機能を用いてエラー画面に遷移させる演習を行う。

動作イメージ


図3.6-1 動作イメージ

  • 対象画面
    • メニュー画面(MenuForm.aspx)
  • 処理概要
    1. (クライアント)メニュー画面で「例外をスローする」ボタンを押下する。
    2. (サーバ)MenuForm.aspx内で例外をスローする。
    3. (サーバ)エラー画面遷移機能が実行され、エラー画面遷移設定ファイルの定義をもとに、例外に対応するエラー画面へ遷移する。
    4. (クライアント)エラー画面を表示する。

作業手順

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>

動作確認

  1. サーバアプリケーションを起動する(TutorialServerWebプロジェクトの発行)。
  2. ブラウザのアドレス欄のURLに「http://localhost/tutorialServerWeb/Form/LogonForm.aspx」を入力し、移動ボタンをクリックし、正常にログオン画面が表示されることを確認する。
  3. ログオン画面でユーザID "tera"、パスワード "soluna" と入力し、「ログオン」ボタンを押下する。
  4. メニュー画面の「例外をスローする」ボタンを押下する。
  5. アプリケーション例外画面に遷移することを確認する。


図3.6-3 ログオン画面⇒メニュー画面


次節:3.7 画面遷移保証