!--a11y-->

プロシージャのエラー状況を呼出元で処理できるようにするには、例外を汎用モジュールおよびメソッドのインタフェースで定義する必要があります。グローバルプロシージャの場合、例外は ABAP ワークベンチで定義されていました。ローカルメソッドの場合、例外は METHODS 命令のEXCEPTIONS オプションで定義されていました。この方法で定義された例外は、RAISE 命令を使っておよび MESSAGE 命令の RAISING オプションを使って、プロシージャ内で生成することができます。
インタフェースでこのように定義され る 例外は、対応する CALL 命令の EXCEPTIONS オプションを使って処理されます。これらの例外は、コール階層には転送できません。これらを処理しないと、実行時エラーが発生します。
プロシージャコールの EXCEPTIONS オプションの後に事前定義された例外 ERROR_MESSAGE を使用することによって、MESSAGE 命令で送信された型 E および A のメッセージも、例外として処理することができます。
これらのユーザ定義の例外の原則は、以下に説明されています。
このクラスベースアプローチは高度でかつ柔軟性に富んでいるため、新規開発のアプローチとしてお奨めします。EXCEPTIONS および RAISING オプションは、プロシージャのインタフェースでは相互に排他的です。