Catch
Synopsis
Try statements Catch [exceptionvar] statements End Try
引数
exceptionvar | オプション — 例外変数。Caché オブジェクトへの参照を受け取るローカル変数として指定され、添え字がある場合とない場合があります。 |
説明
Catch コマンドは、例外ハンドラを定義します。これは、Try 文に続くコードで例外が発生したときに実行される 1 つまたは複数の文です。Catch コマンドの後には、1 つまたは複数の例外処理コード文が続きます。Catch ブロックは必ず Try の直後に来ます。また、Try と Catch のペアは、End Try 文で終了します。
Catch コマンドには、以下の 2 つの基本形式があります。
-
引数なし
-
引数付き
引数なしの Catch
引数なしの Catch は、Catch と End Try の間の一連の文を実行します。
引数付きの Catch
Catch exceptionvar は、システム・エラー発生時に、Throw コマンドまたはシステムの実行環境から Caché オブジェクト参照 (oref) を受け取ります。このオブジェクトは、エラー名やエラーの発生箇所など、例外に関する情報を含むプロパティを提供します。ユーザが記述した Catch 例外処理コードでは、この情報を使用して例外を分析できます。
引数
exceptionvar
システム・エラー発生時に、Throw コマンドまたはシステムの実行環境から例外オブジェクト参照を受け取るのに使用されるローカル変数。システム・エラーの発生時に、exceptionvar は %Exception.SystemExceptionOpens in a new tab 型のオブジェクトへの参照を受け取ります。詳細は、"InterSystems Class Reference" の %Exception.AbstractExceptionOpens in a new tab クラスを参照してください。
例
以下は、実行時エラーによって呼び出される Catch の例を示しています。myvar 引数は、システムで生成された例外オブジェクトを受け取ります。
Try
PRINTLN "about to divide by zero"
SET a=7/0
PRINTLN "this should not display"
Catch myvar
PRINTLN "this is the exception handler"
PRINTLN "Error is: ",Err.Description
PRINTLN "Error code: ",myvar.Code
End Try
PRINTLN "this is where the code falls through"