コンパイラが返すエラーコード

コンパイラから出力されたエラーメッセージは、重大度別に次のように分類されます。

重大度 戻り値 意味
回復不能 (U) 16 致命的なエラーを示します。
重大 (S) 12 コンパイラで解決できないエラーを示します。コンパイルは続行されますが、誤りのある文はコンパイルされません。
エラー (E) 8 コンパイラで修正を試みたエラーを示します。
警告 (W) 4 構文的には正しいが、エラーの可能性がある文にフラグを立てます。
備考 (I) INFORETURN 指令を参照 ソースコード内で確認の必要がある要注意部分を示します。

コンパイラは、オペレーティングシステムに値を返し、発行されたメッセージのうち、最も重大度が高いメッセージが表示されます。

Windows環境

コンパイラをバッチファイルから起動した場合、リターンコードを Windows の IF ERRORLEVEL n コマンドで検査することができます。 これによってリターンコードが n 以上であった場合に指定された コマンドが実行されます。例えば、

cobol myprog;
if errorlevel 8 goto abortjob

は、コンパイラが 致命的、重大、エラーのどれかのメッセージを出力した場合には ABORTJOB に分岐させます。