CHAPTER 17 エラー制御を行う PDF ダウンロード

Part 2
CHAPTER
17
エラー制御を行う
エラー制御を行う
Part 2
Chapter 17
エラー処理の説明
プログラムの 実 行 中 に エラーが 発 生した 場 合、Exception が 送 出されます。「Error Handler」 が
「Save」 Screen Action でキャッチされない Exception の場合、「MainFlow」 Web Flow でキャッチが行
「Error Handler」が、Exception をキャッチできない場合、
より上位のスコー
Exception をキャッチします。
われ、ここでもキャッチされない場合、「Common」 Web Flow でキャッチが行われます。「Common」
プに定義された「Error Handler」 がキャッチします。最上位の「Error Handler」 は、「Theme」 に
Web Flow は、「Employee_17」 Theme のプロパティ「Error Handling Flow」で設定されています。
定義された「Error Handling Flow」になります。こちらでもキャッチされない場合、http://<server>/
customHandlers/internalerror.aspx の画面が表示されます。
通常、「Theme」に定義された「Error Handling Flow」の「All Exceptions Error Handler」により、
この画面が表示されることはありません。本セッションの「Error Handler」の処理階層は上から順に、
本セッションでの、
「Error Handler」は下図の階層に従い、Exception をキャッチしようとします。「Save」
「InvalidInputException」をキャッチできる「Error Handler」が定義されていますが、
Screen Action は、
「UnavailableServiceException」をキャッチすることができないので、「MainFlow」 Web Flow、もし
「Common」 Web Flow
くは「Common」 Web Flow がキャッチを行うようになっています。
「MainFlow」 Web Flow
「EmployeeDetail」内の「Save」 Screen Action
となっています。
58 6
587
エラー制御を行う
Part 2
Chapter 17
アプリケーションの複製を作成する
01 「Chapter 1」にて作成した「Employee」アプリケーションをクリックする。
03
メニューバーから「Module」>「Clone」を選択する。
02 「Employee」アプリケーションモジュールをクリックする。
04
出現したダイアログの「CLOSE」ボタンをクリックする。
05
Interface レ イ ヤ を 開 き、 複 製 さ れ た Application Module の 名 前 を「CloneOf
Employee」から「Employee_17」に変更する。
01
03
04
02
05
58 8
589
エラー制御を行う
Part 2
Chapter 17
Exception を作成する
Error 画面を作成する
01
Logic レイヤを開き、「Exceptions」 を右クリックし、「Add User Exception」 から
Exception を追加する。
01
Interface レイヤを 開き、「MainFlow」 を 右クリックし、「Add Web Screen」 から
Web Screen を追加する。
02
作成された「Exception」を「InvalidInputException」にリネームする。
02
作成された「WebScreen1」を「Error」にリネームする。
03
同様の操作を行い、「UnavailableServiceException」を追加する。
03
「ExceptionMessage」を「Error」画面の「MainContent」にドラッ
Data レイヤを開き、
グする。
01
01
02 03
●
03
59 0
591
エラー制御を行う
Part 2
Chapter 17
Exception をキャッチする
入力エラーの処理を追加する
Exception をキャッチするには「Error Handler」を使用しますが、プロパティにより、Exception をキャッ
「Raise Error」を利用すると、Exception を発生させることができます。
チした際に、データベースをロールバック、Service Center にエラーログを出力させるといった設定が
01 「EmployeeDetail」の「Save」 Screen Action をダブルクリックで開く。
可能です。
01
「MainFlow」をダブルクリックする
Interface レイヤを開き、
02
左側のツールボックスから、
「Error Handler」をドラッグする。
03 「UnavailableServiceException」を選択し、「OK」をクリックする。
04 「UnavailableServiceException」から「Error」に矢印を引く。
02
02
左側のツールボックスから「Raise Error」をドラッグし、Valid=False 時に通る End に
かぶせてドロップする。
03 「InvalidInputException」を選択し、「OK」をクリックする。
04 「Error Message」に「" 不正な値が入力されています "」と設定する。
01
02
03
03
04
04
59 2
593
エラー制御を行う
Part 2
Chapter 17
サービス停止のエラー処理を追加する
05
フロー上の「All Exceptions」を選択し、プロパティ「Exception」の値を「Invalid
InputException」に変更する。
01
06
フロー上のアイコンが「InvalidInputException」に変更される。
02 「Property1」を「Available」にリネームする。
03
Data レイヤを開き、「Site Properties」を右クリックし、「Add Site Property」 から
Site Property を追加する。
プロパティを以下の通りに設定する。
05 06
●
01
594
02 03
●
595
エラー制御を行う
Part 2
Chapter 17
04
左側のツールボックスから「If」をドラッグする。
05 「If」の「Condition」に「Site.Available」と入力する。
06
左側のツールボックスから「Raise Error」をドラッグする。
07 「UnavailableServiceException」を選択し、「OK」をクリックする。
08 「Site.Available?」から「UnavailableServiceException」に矢印を引く。
04
06
07
05
08
596
597
エラー制御を行う
Part 2
Chapter 17
1-Click Publish を行って、アプリケーションの動作を確認する
09 「UnavailableServiceException 」のプロパティ「Error Message」に「" サービス
は停止中です "」と設定する。
10 「Site.Available?」を右クリックし、「Swap Connectors」を選択する。
11 「True」と「False」が入れ替わる。
01
緑色の①ボタンをクリックし、1-Click Publish を行う。
02
青の矢印ボタン(Open in Browser)をクリックし、ブラウザでアプリケーションを表示
する。
03
Employee_17 アプリケーションのログイン画面が表示されたら、管理者ユーザでログ
インする。
09
10
598
11
01
02
59 9
エラー制御を行う
Part 2
Chapter 17
「Save」 Screen Action の「Error Handler」が Exception をキャッチします。
04
以下の点を確認する。
●
入力エラー時に、「不正な値が入力されています」と表示される。
05
Service Studio を 開 き、「Employee_17 」 が 表 示 さ れ てい る 状 態 で、「Module
Management」のアイコンをクリックし、Service Center を表示する。
06 「Site Properties」タブを開き、「Available」をクリックする。
07 「Effective Value」を「False」に設定し、「Apply」をクリックする。
05
04
06
07
600
6 01
エラー制御を行う
Part 2
Chapter 17
Error Handler を削除する
「Save」Screen Action の「Error Handler」が Exception をキャッチできず、
「MainFlow」WebFlow
が Exception をキャッチします。
08
Interface レイヤを開き、「MainFlow」をダブルクリックする。
02 「UnavailableServiceException」と「Error」を選択し、削除する。
以下の点を確認する。
●
「Save」をクリックした際に、
「Main Flow」に定義した、
「Error」ページに遷移する。
08
602
01
01 02
●
603
エラー制御を行う
Part 2
Chapter 17
1-Click Publish を行って、アプリケーションの動作を確認する
01
緑色の①ボタンをクリックし、1-Click Publish を行う。
02
青の矢印ボタン(Open in Browser)をクリックし、ブラウザでアプリケーションを表示
する。
03
Employee_17 アプリケーションのログイン画面が表示されたら、管理者ユーザでログ
インする。
「Save」Screen Action、
「MainFlow」Web Flow のどちらも Exception がキャッチされず、
「Common」
Web Flow に定義されている「All Exceptions Error Handler」が Exception をキャッチし、例外ページ
を表示しています。
04
以下の点を確認する。
●
「Save」をクリックした際に、
「Common」に定義した、
「InternalError」ページに遷移する。
04
01
604
02
6 05