throw 文
書式
throw
throw文である事を示すキーワードです。
式
この式が生成するインスタンスがerrorクラスのインスタンスに添付されます。インスタンスが必要ない無い場合は省略できます。
throw文が式を持たない場合は、errorクラスのExceptionDataゲッタは未初期化のproxyクラスのインスタンスです。
throw文が式を持つ場合は、errorクラスのExceptionDataゲッタは式で初期化されたproxyクラスのインスタンスです。
式が予約変数__errorの場合は、添付されずにそのまま再スローされます。
セミコロン
throw文の終了はセミコロンで表します。
例
1: | class example |
2: | open method void someMethod() |
3: | throw "exception"; |
4: | em |
5: | ec |
1: | example ex; |
2: | try |
3: | ex.someMethod(); // It throws an exception. |
4: | catch |
5: | string mess = __error.ExceptionData.Entity; // "exception" |
6: | endtry |
someMethod()メソッドから例外がスローされます。throw文が文字列リテラルを持つのでスローされたインスタンスのExceptionDataゲッタが文字列で初期化されています。
例外はメソッド呼び出しを囲むtry文にキャッチされます。try文にcatchセクションがあるので実行制御が移動します。
catchセクションに実行制御が移動する際に予約変数__errorにスローされたインスタンスが格納されます。