Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

Catch

例外発生時に実行するコード・ブロックを指定します。

Synopsis

Try
   statements
Catch [exceptionvar]
   statements
End Try

引数

exceptionvar オプション — 例外変数。Caché オブジェクトへの参照を受け取るローカル変数として指定され、添え字がある場合とない場合があります。

説明

Catch コマンドは、例外ハンドラを定義します。これは、Try 文に続くコードで例外が発生したときに実行される 1 つまたは複数の文です。Catch コマンドの後には、1 つまたは複数の例外処理コード文が続きます。Catch ブロックは必ず Try の直後に来ます。また、TryCatch のペアは、End Try 文で終了します。

Catch コマンドには、以下の 2 つの基本形式があります。

  • 引数なし

  • 引数付き

引数なしの Catch

引数なしの Catch は、CatchEnd 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"

関連項目

  • Throw コマンド

  • Try コマンド

  • Err オブジェクト

FeedbackOpens in a new tab