例外処理

提供: AB開発Wiki
ナビゲーションに移動検索に移動

例外処理は Try - Catch - Finally ステートメントで処理します。

例外はThrowステートメントによって発生させることが可能です。

例外処理の定義

Try
    /* 通常処理 */
Catch ex As ExceptionClass
    /* ExceptionClassが発生したときのエラー処理 */
Catch
    /* デフォルトのエラー処理 */
Finally
    /* 共通の終了処理 */
End Try

Try内の通常処理によって例外が発生したときは適切なCatch節に制御が移ります。このとき、Throwされたときに指定されたデータを受け取ることが可能です。

何も指定されていないCatch節はデフォルトの例外処理になります。あらゆる例外をキャッチします。

Finally節はTryスコープを抜け出す際に必ず処理されます。例外発生時も必ず実行されるため、通常時、例外時に関わらず、安全に終了処理を記述できます。

Tryスコープは入れ子構造にすることが可能です。例外発生時は一番身近なTryスコープを検知し、例外処理が可能かどうかを評価します。もしも適切なCatch節が存在しないときはFinally節を実行してTry文を抜け出した後、更に上位のTryスコープにて例外処理が可能かどうかを評価します。

Catch節またはFinally節は省略可能です。ただし、両方共に省略した場合、そのTryスコープは例外処理の観点から意味を成さなくなるため、コンパイラは警告メッセージを出力します。

例外を発生させるためのコード

Throw ex

exは例外の内容を保持するオブジェクトインスタンスです。

使用例

何か良いサンプルコードがある方、更新願います(≧o≦