ランタイム エラー

ランタイム時にエラーが発生した場合は、端末にメッセージが表示されます。

Open PL/I の ON 文を使用して、プログラムで発生する可能性のある状態のハンドラーを開発することができます。ON ERROR 文は、任意のエラーに使用できます。ONLOC 組み込み関数は、ON-unit で使用して、状態が発生したエントリの名前をレポートすることができます。また、ONCODE 組み込み関数は、ランタイム エラーのステータス値をレポートするために使用できます。

注:

ON-unit によりエラーがキャッチされない場合は、Open PL/I は、エラーが発生したソース ファイルおよび行番号を表示します。ただし、これらの機能が動作するようにするには、デフォルト オプションの -unixdebug を使用して、ソース ファイルをコンパイルしておく必要があります。

現在、この機能は、Open PL/I の Sun Solaris 2 および IBM AIX バージョンのみで使用可能です。

ランタイム時に致命的なエラー状態が発生した場合、メッセージには、発生した状態、その状態が発生したプログラム アドレス、その状態が発生したソース ファイル、エントリ、行番号、さらに呼び出しスタック内のそのエラーの上の各プロシージャの行が指定されて表示されます。次に例を示します。

*** Condition ERROR raised 
***Unhandled condition ZERODIVIDE at PC=00010233 
CALCDIV line 26 in /dirl/dir2/calcs.pl1 
SUBR3 line 444 in /dirl/dir2/subprog.pl1 
MYPROG line 871 in /dirl/dir2/mainprog.pl1

この例の説明:

CALCDIV "ZERODIVIDE" 状態が発生したエントリ
SUBR3 (444 行目の) "CALCDIV" を呼び出したエントリ
MYPROG SUBR3 を呼び出したプログラム

-nounixdebug オプションを使用してプログラムをコンパイルした場合は、その状態が発生したプログラム アドレスのみが表示されます。

*** Condition ERROR raised 
*** Unhandled condition ZERODIVIDE at PC=00010233