Rubyの「主な」エラーメッセージの例と対処方法

(1)  文法(syntax)的な間違い(error)によるエラー
 o 症状: test1.rb:15: syntax errorというようなメッセージが出る
 o 読み方:この例では、test1.rb というプログラムファイルの 15行目に間違いがあるかも
 o 対処法: if, while, begin(など)に対応するendがあるか、括弧が対応するか、文字列の印があるか、をチェック 
 o 注意: 15行目がエラーのありそうな場所(行番号)であるが、これがプログラムの最後の行番号の場合は、
そこに間違いがあるのではなく、その前までのどこかでendを忘れている可能性が高い。

(2) 未定義(undefined)の変数(variable)やメソッド(method)/関数によるエラー
 o 症状: test2.rb:3:in `my_sort': undefined local variable or method `a0' for main:Object (NameError) というようなメッセージが出る
 o 読み方:この例では、test2.rb の3行目で使われている a0 という変数に値が入っていないか、もしくは定義されていない関数
 o 対処法:参照される変数に値が入っているか、関数や変数の名前に誤りはないか、をチェック
 o 注意:大抵は、変数の名前を打ち間違えている

(3) 引数(arguments)の個数(number)が間違い(wrong)であることによるエラー
 o 症状: test4.rb:8:in `my_sort': wrong number of arguments(1 for 0) (Argument Error)  というようなメッセージが出る
 o 読み方:test4.rb の8行目において、関数 my_sort の定義と、実際に使われている引数の個数が合っていない
 o 対処法:関数の引数の数が合っているかをチェック

(4) 引数(argument)のタイプ/クラス(type)の間違い(wrong)によるエラー
 o 症状:  test5.rb:11:in `scan': wrong argument type nil (expected Fixnum) (TypeError)   というようなメッセージが出る
 o 読み方:11行目の scan の引数のタイプが間違っている(Fixnumを期待していたのにnilであった)
 o 対処法:関数の引数のクラスが適切かどうかをチェック

(5) 未定義(undefined)なメソッド(method)/関数によるエラー
 o 症状:  test3.rb:17: undefined method `+' for nil:NilClass (NoMethodError)  というようなメッセージが出る
 o 読み方:この例の場合は、17行目に使われている + という「未定義なわけがない」演算子がやり玉にあがっている。
   ここは、つまり「for nil:NilClass」が問題。つまり「nil」には + が使えない、と言っている。
 o 対処法:演算子の使い方に間違いはないか(引数のクラス)をチェック
 o 注意: 配列やハッシュの要素の初期値は(特別なことをしない限り)nilである。
   このようなエラーが起きるのは、配列の要素の指定が間違っているか、要素の値の初期化(例えば0にする)ことを忘れている場合が多い