Raise Error アサーション

このアサーションを単独で使用すると、ポリシーの実行を停止し、ポリシーの実行が停止されたエラーを生成します。Raise Error アサーションが Handle Errors アサーションの内部にある場合、実行は Raise Error ポイントで停止しますが、ポリシーの実行は Handle Error アサーション ブロックの外部で続行されます。
gateway83
このアサーションを単独で使用すると、ポリシーの実行を停止し、ポリシーの実行が停止されたエラーを生成します。Raise Error アサーションが Handle Errors アサーションの内部にある場合、実行は Raise Error ポイントで停止しますが、ポリシーの実行は Handle Error アサーション ブロックの外部で続行されます。
 
Raise Error アサーションにユーザ独自のエラー メッセージを設定することはできますが、問題が発生した場合に内部エラー ハンドラに情報を渡すためにアサーションの前にコンテキスト変数を設定できます。グローバル ポリシーまたはカプセル化アサーションのコンテキストで使用される場合、必ず Export Variables from Fragment アサーションを使用して、コンテキスト変数を親ポリシーで使用できるようにします
以下の例は、Raise Error アサーションと Handle Error アサーションをどのように連携させるかを示しています。
- All assertions must evaluate to true
    - Handle Errors
         - At least one
            - Route to
<wherever>
            - All assertions must evaluate to true (//routing failed)
               - Set variable "errorCause" as String to "routing failed: ${httpRouting.reasonCode}"
               - Export Variable from Fragment "errorCause" (//this exports to "request.shared.errorCause")
               - Raise Error
    - All assertions must evaluate to true (// an error was caught)
       - <add logic to check ${request.shared.errorCause} to see what went wrong>
この単純な例では、フラグメント全体が同じポリシー範囲内にあるため、変数 "errorCause" を "request.shared.errorCause" にエクスポートする必要はありません。これが必要なのは、以下のようなシナリオの場合です。
  • Raise Error アサーションは、カプセル化されたアサーションの基礎となるポリシーとなるポリシー フラグメント内にあります。
  • Handle Error アサーションは、カプセル化されたアサーションの外部にあります。
コンテキスト変数
なし
クラスタ プロパティ
なし