はじめに
元気なときは大丈夫!ちゃんとエラー文を読み解いて自己解決出来る!
でも、頭が疲れて脳がリソース不足になっているとき、ついテキトーにググって時間を浪費してしまっていませんか?
そんな疲れたあなたのために、「原因はこれじゃない?」とあたりをつけられるよう良くある原因を問いかけ形式でまとめました。
※Rails ではなく、生Rubyでのエラーを記載しています。
この記事が役立つ方
- エラー発生時にあたりをつけず
- 手当り次第にググってしまう
- Ruby初心者
この記事のメリット
- Rubyのデバッグ効率UP!
よく発生する例外クラス一覧
- SyntaxError
- NameError
- NoMethodError
- TypeError
- ArgumentError
- SystemStackError
- LoadError
それぞれの良くある原因
SyntaxError
end
の過不足はありませんか?,
の過不足はありませんか?()
や{}
の過不足はありませんか?
- ハッシュの{}
がブロックの{}
と間違えて解釈されていませんか?
NameError
- 単純なタイプミスはないですか?
- 以下が未定義なのに呼び出されていませんか?
- ローカル変数
- 定数
- privateメソッド
require
忘れ(外部ファイル・ライブラリ)はありませんか?
NoMethodError
- 単純なタイプミスはないですか?
- レシーバの想定していた型と異なっていませんか?
- ex.文字列を想定していたのにシンボルになっていた
- レシーバが想定に反して
nil
になっていませんか?
TypeError
- 違う型同士の演算をしようとしていませんか?
ArgumentError
- 引数が過剰していませんか?
- 引数が不足していませんか?
- 引数の正負が間違っていませんか?
SystemStackError
- 無限ループ
- 間違ってメソッドを再帰呼び出ししていませんか?
LoadError
require
やload
の実行に失敗していませんか?- 呼び出したいファイルのパス誤り(もしくはライブラリ名)はありませんか?
- gemは実行環境にインストール出来てますか?
おわりに
自分が脳のリソース不足のときについ手当り次第ググってしまうクセがあったので、反省してまとめました。
実際はここで出てきた表面的な方法では解決出来ないことも多いですが、まずは応急処置として確認はするべきですね。
まずググる、の前に範囲を絞ってから解決するクセをつけます。
誰かの辞書代わりにもなれば幸いです。