Sap-abap-exception-handling
SAP ABAP-例外処理
- 例外*は、プログラムの実行中に発生する問題です。 例外が発生すると、プログラムの通常のフローが中断され、プログラムアプリケーションが異常終了します。これは推奨されません。したがって、これらの例外は処理されます。
例外は、プログラムのある部分から別の部分に制御を移す方法を提供します。 ABAP例外処理は、RAISE、TRY、CATCHおよびCLEANUPの3つのキーワードに基づいています。 ブロックが例外を発生させると仮定すると、メソッドはTRYキーワードとCATCHキーワードの組み合わせを使用して例外をキャッチします。 TRY-CATCHブロックは、例外を生成する可能性のあるコードの周りに配置されます。 TRYを使用するための構文は次のとおりです– CATCH –
例外を発生させる
例外は、メソッド、汎用モジュール、サブルーチンなどの任意の時点で発生する可能性があります。 例外を発生させることができる2つの方法があります-
- ABAPランタイムシステムによって発生した例外。 +たとえば、Y = 1/0。 これにより、タイプCX_SY_ZERODIVIDEの実行時エラーが発生します。
- プログラマーによって発生した例外。 +例外オブジェクトを同時に発生させて作成します。 最初のシナリオに既に存在する例外オブジェクトを使用して、例外を発生させます。 構文は次のとおりです。RAISEEXCEPTION exep。
例外をキャッチする
ハンドラーは、例外をキャッチするために使用されます。
コードスニペットを見てみましょう-
上記のコードスニペットでは、Num1をNum2で除算して、float型変数の結果を取得しようとしています。
2種類の例外が生成される可能性があります。
- 数値変換エラー。 *ゼロ例外で除算します。 ハンドラーは、CX_SY_CONVERSION_NO_NUMBER例外とCX_SY_ZERODIVIDE例外もキャッチします。 ここでは、例外クラスのGET_TEXT()メソッドを使用して、例外の説明を取得します。
例外の属性
例外の5つの属性とメソッドは次のとおりです-
S.No. | Attribute & Description |
---|---|
1 |
例外のさまざまなテキストを定義するために使用され、get_textメソッドの結果にも影響します。 |
2 |
Previous この属性は、例外のチェーンを構築できる元の例外を保存できます。 |
3 |
get_text これは、例外のシステム言語に従って、テキスト表現を文字列として返します。 |
4 |
get_longtext これは、例外のテキスト表現の長いバリアントを文字列として返します。 |
5 |
get_source_position 例外が発生した場所に到達したプログラム名と行番号を示します。 |
例
この例では、数値が150より大きい場合、例外CX_DEMO_ABS_TOO_LARGEが発生します。 上記のコードは、数値160に対して次の出力を生成します。