0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

エラー文の読み方

Posted at

image.png
よく、下記のようなエラー分が出る。image.png
 こういうエラーが出現した時、「上記のエラー文をそのままインターネット検索をしてしまう”」と初心者の私は考えてしまいます。

 調べてみても、”length” というメソッド自体が存在しており、不正な記述でもないため、意味がわからないくなってしまう。
上の画像のエラーは “undefined method” で、このエラーの読み方は “for” の後に記載されている “nil:NilClass” が重要です。

1:エラー文の解釈の誤り
①:誤った解釈:「”length” が使えない。“NilClass” はよくわからないので考えない。」
②:正しい解釈:「”nil” の変数に対して “length” メソッドを使おうとしている。変数が “nil” となってる原因を仮説・検証する必要がある。」

2:nil:NilClassとは
 この場合、lengthが “NilClass” に対してダメだよ、と言われているので、“length” を使おうとしている変数の “str” が “NilClass” ということになります。
つまり、”str” の変数が NULL になってしまっているんです!
 このケースは変数でしたが、渡されていない “params” に対して色々なメソッドを使おうとしても同じエラーが起きるケースはやりがちなので、気をつけましょう。

3:エラーの解決していく手順について
①変数がNULLとなる原因を探す。
②変数がNULLにならないように対処する。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?