dreamedge.net

Kernel.raiseメソッドの引数

2008-11-01T12:00:00+0000

Rubyで例外を発生されるraiseメソッドは,3種類の形式がある

1. raise

一番単純なパターン.$!に格納されている例外を発生させる.$!がnilの場合はmeessageに”が入ったRuntimeErrorを発生させる.

2. raise( aString )

引数のStringをmessageに格納したRuntimeErrorを発生させる.

3. raise( anException <, aString <, anArray >> )

第1引数は発生させるExceptionクラスの名前,第2引数はmessageの内容,第3引数はbacktrace情報の入った配列が入る.第3引数を省略した場合は,Kernel.callerの値が代入される.

注意点としては1番目2番目の形式の場合はRuntimeErrorが発生するという所.関数冒頭の引数チェックでArgumentErrorを発生させる場合は3番目の形式を使わないとダメ.