try 文により、コードに発生する可能性のあるすべての例外 (ファイルやレコードの終わりが見つからないなどの小さな例外から、 ハードの入出力エラーなどのより重大な問題まで) の結果に影響を与えることができます。例外が発生すると、例外タイプと一致する onException ブロックの最初の文で処理が再開されます。 onException ブロックは、明白な理由がなくても省略できます。 省略した場合、例外は try ブロックの終わりに続く最初の文で再開されます。
例外はエラーが発生した位置から上方に伝搬します。try 文が、 どんなに深くネストされていても、try ブロックから呼び出されたすべての関数内で生じた例外を処理できます。例外がスローされたら、最も近くに内包されている try ブロックがコントロールを得ます。 onException ブロックに一致する例外が見つからない場合、次にレベルの高い内包されている try ブロックがコントロールを受け取ります。 それ以上 try ブロックが見つからない場合、次の実行可能ステートメントがコントロールを受け取ります。
例外処理のプロセスについて詳しくは、例外処理を参照してください。

| プラットフォーム | 問題 |
|---|---|
| DL/I データベース・アクセス | dliVar.handleHardDLIErrors または vgVar.handlHardIOErrors のいずれかが 1 に設定されている場合は、DL/I セグメントに対する try ブロック内でハードの入出力エラーが発生しても、プログラムは実行を続けます。両方のシステム変数が 0 に設定されているか、try ブロックがない場合は、DL/I セグメントに対するハードの入出力エラーが発生すると、プログラムは終了します。dliVar.handleHardDLIErrors は、IMS™ メッセージ・キューまたは GSAM ファイルに関連付けられているシリアル・レコードには影響を与えません。 |
| V60 の例外互換性 |
|
| VisualAge® Generator 互換モード | vgVar.handlHardIOErrors が 1 に設定されている場合、データベース入出力またはファイル入出力の try ブロックの中でハード入出力エラーが発生しても、プログラムは動作を続行します。vgVar.handlHardIOErrors が 0 に設定されているか、または try ブロックがない場合、データベース入出力またはファイル入出力に対するハード入出力エラーが発生すると、プログラムは終了します。 vgVar.handleHardIOErrors のデフォルトは 1 ですが、handleHardIOErrors プログラム・プロパティーを NO に設定することにより、デフォルトの設定を 0 にできます。この設定は、VisualAge Generator ではデフォルトです。 |