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番目の形式を使わないとダメ.