Home News DOC Class DL Others Cooker
Documents  >  Tutorial  >  try 文
try 文

例外によって実行を分岐するための try 文について説明します。


目次:


書式

try

catch

スコープ

予約変数

endtry

書式

try 文は以下の形式です。


try

...

catch

...

endtry


try セクションで例外が発生したら catch セクションに実行制御が移動します。catch セクションが無ければ endtry の次の文に実行制御が移動します。

try セクションで例外が発生せずに実行が catch、endtry に達したら endtry の次の文に実行制御が移動します。

try

try 文である事と try セクションの開始を示すキーワードです。

try セクションは以下の形式です。


try

...


try セクショは try 文の先頭に一つだけ必要です。

catch

catch セクションの開始を示すキーワードです。

catch セクションは以下の形式です。


catch

...


try セクションの中で例外が発生するとセクション内の文が無条件で実行されます。

実行が endtry に到達すると実行が endtry の次の文に移動します。

catch セクションで再度発生した例外は現在の try 文の外へスローされます。


catch セクションはオプションです。try 文中に一つしか存在できません。

catch セクションが無い場合は try セクションで発生した例外は無条件で処理済みとなります。

スコープ

try 文全体でのスコープはありません。セクションが個別のスコープを生成します。

予約変数

実行制御が catch キーワードに到達するとスコープが生成され、予約変数 __error が定義されます。

__error は error クラスの変数です。try セクションで発生した例外で初期化されています。

セクション内の文はオプションです。セクション内に任意の数だけ存在できます。

endtry

try 文の終了を示すキーワードです。

endtry の代わりに省略形の et を使用できます。et もキーワードであることに注意してください。

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() メソッドから例外がスローされます。


例外は try 文にキャッチされます。try 文に catch セクションがあるので実行制御が移動します。

catch セクションに実行制御が移動する際に予約変数 __error にスローされた error クラスのインスタンスが格納されます。

Copyright © Rice All rights reserved.