JavaScriptエラーを処理する
以下の特定の状況で発生するJavaScriptエラーを処理することができます。
- <script>タグのある、エスケープされていないExpressionのAjax更新時
- HTTPRequestHandlerエクステンションのRunJavaScriptアクション実行時
こうしたエラーを処理するには、エラーを処理するJavaScript関数を定義して、エラーハンドラ関数として登録する必要があります。
エラーを処理するJavaScript関数を定義する方法
デフォルトでは、OutSystemsにはOsAlertExceptionHandlerという基本的なエラーハンドラ関数があります。この関数はエラーに関する情報を示す警告ボックスを表示します。
OsAlertExceptionHandler関数を使用してJavaScriptエラーを処理するか、以下のシグネチャを使用して独自の関数を定義することができます。
function <ErrorHandlerFunctionName>( event, exception [, errorCode] [, origin] )
引数は以下のとおりです。
- event: jQueryのイベント。
- exception: エラーを発生させたJavaScriptの例外インスタンス。エラーの詳細については、
exception.name
およびexception.message
プロパティを使用してください。 - errorCode: エラーの種類を識別する整数(任意の引数)。
- origin: エラーがトラップされたJavaScript関数(任意の引数)。
以下のエラーコードは事前定義されており、関数のロジックで使用することができます。
- outsystems.osErrorCodes.UserJavascriptError: アクションフローでのHTTPRequestHandlerエクステンションのRunJavaScriptアクションの実行中、または「<script>」タグのあるエスケープされていないExpressionの更新時に発生します。
- outsystems.osErrorCodes.ConnectionError: サーバーへのAjaxリクエスト開始時またはリクエスト中に発生する可能性がある接続エラーです。
- outsystems.osErrorCodes.SystemJavascriptError: OutSystemsのAjax JavaScript実行中に予期しない例外が生じた場合に発生します。
エラーハンドラ関数の登録方法
エラー処理用のJavaScript関数を設定するには、まず登録が必要です。以下のJavaScriptコードをモジュールに追加します。
OsRegisterExceptionHandler(<ErrorHandlerFunctionName>)
OutSystems OsAlertExceptionHandler関数を使用する場合、まず登録が必要です。
以下の例は、モジュールのスコープのJavaScriptエラーを処理する関数の定義と、エラーハンドラ関数としての登録を示しています。
エラー処理用の関数は、複数登録することが可能です。登録されたエラーハンドラ関数は、すべてJavaScriptエラーの発生時に実行されます。