エラー処理
すべての Web アプリケーションに対して、InterSystems IRIS® データ・プラットフォームは、アプリケーション・エラーの発生時にユーザにメッセージを表示する既定のエラー・ページを提供します。この代わりに、独自のカスタム・エラー・ページを提供することもできます。エラーが発生して、ライセンスが取得されていない (そのためサーバ・コードを実行できない) 場合の特別なオプションがあります。
このページでは、ユーザが ObjectScript のエラー処理とエラー・ログに精通していることを前提としています。
カスタム・エラー・ページの追加
カスタム・エラー・ページを追加するには :
-
%CSP.ErrorOpens in a new tab のサブクラスを作成し、OnPage() コールバック・メソッドをカスタマイズします。
このクラスでは、%request、%response、および %session オブジェクトを通常通り使用できます。
特に、%request.Get("Error:ErrorCode") には、エラー情報が含まれています。DecomposeError() を使用して、以下のようにエラーのテキストを含む多次元配列を取得します。
Do ..DecomposeError(%request.Get("Error:ErrorCode"),.ErrorInfo)
次に、以下のように ErrorInfo 変数 (参照渡しで返される) をループ処理できます。
For i=1:1:ErrorInfo { if (i=1) { set return="<p>"_ErrorInfo(i,"Desc")_"</p>" } else { set return=return_$CHAR(13,10)_"<p>"_ErrorInfo(i,"Desc")_"</p>" } }
この例では、HTML に含まれるように文字列を構築します (エラー・メッセージごとに 1 つのパラグラフとなっています)。
エラーから情報をプルするための追加の方法については、"%CSP.ErrorOpens in a new tab" も参照してください。
-
オプションとして、ライセンスが付与されていないときにカスタム・ページを表示するには、このクラスのパラメータをオーバーライドしてください。
-
このエラー・クラスを使用するよう Web アプリケーションを構成します。
ライセンスが付与される前のエラーの処理
Web アプリケーションにまだライセンスが付与されておらず、エラーが発生した場合、InterSystems IRIS は標準の Web の「HTTP/1.1 404 Page Not Found」エラー・メッセージが既定で表示されます。
エラー・ページ・クラスで以下のパラメータを指定することで、そのような場合にエラーが発生したときに表示されるページの内容を変更できます。
このパラメータは、ライセンスが付与されないときに InterSystems IRIS が実行する処理を制御します。パラメータには以下の 2 つの値のいずれかを指定できます。
-
"" または NULL — 「HTTP/1.1 404 Page Not Found」エラーを返します (既定)。
-
静的 HTML ファイルへのパス — /csp/myapp/static.html などの名前付きファイルを表示します。
このパラメータは、以下のいずれかのエラーが発生した場合に InterSystems IRIS が実行する処理を制御します。
-
ライセンスを付与できない
-
クラスが存在しない
-
メソッドが存在しない
-
Web アプリケーションが存在しない (既定のエラー・ページでパラメータを設定)
-
CSP ページが存在しない
-
ファイルが存在しない
-
ネームスペースが存在しない
-
不正な要求
-
ファイルを開けない
-
セッション・タイムアウト
パラメータには以下の値のいずれかを指定できます。
-
"" — 「HTTP/1.1 404 Page Not Found」エラーを返します (既定)。
-
1 — ライセンスを取得し、標準のエラー・ページを表示します。
-
静的 HTML ファイルへのパス — /csp/myapp/static.html などの名前付きファイルを表示します。
このパラメータは、その他のエラーが発生した場合に InterSystems IRIS が実行する処理を制御します。パラメータには以下の値のいずれかを指定できます。
-
"" — ライセンスを取得し、標準のエラー・ページを表示します (既定)。
-
1 — 「404 Page not found」エラーを出力します。
-
静的 HTML ファイルへのパス — /csp/myapp/static.html などの名前付きファイルを表示します。