Up Top

Exception の処理 (送出処理/捕捉処理)


概要(Summary)

例外処理では「ユーザーが書いた Java コード内から対応する例外ハンドラを見つけてキャッチさせる」ことが主な仕事になる. このため処理の流れは以下の通り (なお, 対応する例外ハンドラがなかった場合は異常終了になる).

  1. 「例外オブジェクト(java.lang.Exceptionやjava.lang.Errorのサブクラスのオブジェクト)」を作成する.

    なお, 例外オブジェクトは, HotSpot の内部的な処理中においても, Java レベルでのオブジェクト(Exception オブジェクト) の形でハンドリングされる

  2. 現在のメソッド内で対応するハンドラを見つけてジャンプする. 現在のメソッド内で見つからなければ, スタックフレームを一つ上がって同じ処理を繰り返す.

このうち, "2." の例外ハンドラの探索処理では以下のように処理が行われる. どちらの場合も, 対応するハンドラが見つかるまでスタックフレームの unwind が繰り返される.

Subcategories


This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.