Throw
Synopsis
Throw [oref]
引数
| oref | オプション — ユーザ定義のオブジェクト参照。 | 
説明
Throw コマンドは、Try コマンドにより定義されたコード・ブロック内から、明示的に例外を発行します。Throw を発行すると、Try ブロックから対応する Catch 例外ハンドラへ実行が転送されます。
Throw は、明示的な例外を発行するために使用されます。Caché は、実行時エラーの発生時に暗黙的な例外を発行します。実行時エラーにより、Catch 例外ハンドラへスローする例外オブジェクトが生成されます。
Throw には、以下の 2 つの形式があります。
- 
引数なし 
- 
引数付き 
引数なしの Throw
引数なしの Throw は、エラー処理を対応する Catch エラー・ハンドラに転送します。スタックにプッシュされるオブジェクトはありませんが、%New() メソッドが呼び出されます。
引数付きの Throw
Throw oref はユーザ定義のオブジェクト参照を指定します。このオブジェクト参照を Catch コマンドにスローして、実行スタックにプッシュします。%New() メソッドの呼び出しはオプションです。
引数
expression
ユーザ定義のオブジェクト参照 (oref)。例えば、Throw ##class(%Exception).%New()。この例外オブジェクトを作成してデータを入れるのは、プログラマの責任です。
例
以下は、引数を付けずに Throw を使用する例です。
  Try
    SET x=2
    PRINTLN "about to divide by ",x
  Throw
    SET a=7/x
    PRINTLN "Success: the result is ",a
  Catch myvar 
    PRINTLN "this is the exception handler"
    PRINTLN "Error number: ",Err.Number
    PRINTLN "Error is: ",Err.Description
    PRINTLN "Error code: ",myvar.Code
  END Try
  PRINTLN "this is where the code falls through"
