roy > naoya > Rubyエラーメッセージ

Rubyエラーメッセージについて

Rubyプログラムを作成しktermで実行すると、思ったような結果が得られないことがある。プログラムが止まらなくなることもあれば、エラーメッセージが表示されて全く動かないこともある。

エラーメッセージを解読して、エラー箇所を修正していくことによりプログラムをより深く理解することができるため、詳しくは説明しない。単純なもののみ示す。

プログラムが止まらない

Ctrl-cでプログラムを強制終了できる。

while-endの繰り返しを継続する条件や、if文でbreakするときの条件などを確認してみること。

エラーメッセージの読み方

プログラムを実行したら次のようなエラーメッセージが表示されたとする。

hoge.rb:5:in '+': String can't be coerced into Fixnum (TypeError)
       from hoge.rb:5
  • hoge.rb:実行したプログラム名
  • 5:エラーのある行数(5行目にエラーがある)
  • '+': String can't be coerced into Fixnum (TypeError):具体的なエラー内容

このエラーが出た場合、emacsで作成しているプログラムの5行目を確認すればよい。ただし、エラーメッセージが158行目であった場合、上から順番に数えて158行目にたどりつくのは非常に面倒くさい。

emacsではカーソルが何行目にあるか容易に確認できるので活用しよう。emacsの下部に以下の表示がある。このうちL12が行数をあらわす。これを見れば現在12行目にいることがわかる。

-かんな-E:--   hoge.rb      ALL  L12

エラーメッセージの例

  • File not Found:プログラムを保存した場所と実行している場所が違う
  • undefined method....:メソッドのスペルミス
  • undefined local variable or method....:変数のスペルミス