アマグラミング

プログラミング初心者が勉強したことを復習とメモがてら書いているだけです。

(92)例外処理

プログラムを実行するとエラーが起こり、例外が発生することがあります。

その場合、プログラムは一時中断して、例外処理を探します。

 

もし、例外処理が記述されていれば、それを実行します。

なければ、エラーメッセージが表示されて

 

ファイル名:行番号:in メソッド名:エラーメッセージ(例外クラス名)

from ファイル:行番号:in メソッド名

・・・

・・・

・・・

 

こんな感じの内容のエラーメッセージが出る。

 

例外処理の書き方

 

begin

  例外を発生させると思われる処理

rescue

  例外が起こった場合の処理

end

 

例外処理もオブジェクトなので

rescue 変数名 という形で使える

 

begin

例外を発生させると思われる処理

rescue => 代入する例外オブジェクトの変数

例外が起こった場合の処理

end

 

変数名は指定しなくても変数$!に自動的に当てはめられるが

明示的に指定する書き方の方がわかりやすい。

 

$!  は最後に発生した例外(例外オブジェクト)

$@ は最後に発生した例題の位置情報

 

例外オブジェクトのメソッドとしては

class は例外の種類

message は例外のメッセージ

backtrance は例外の発生した位置に関する情報

 

例外が発生したメソッド中にない場合、呼び出し元を遡って例外処理を探します。

例えば、aというメソッドをbというメソッドを用いて呼び出した時

aでエラーが発生したとします。

aで例外処理が書かれていなくても、bで例外処理が書いてあれば

それを実行するということです