【Ruby3.x】NoMethodError::args()メソッドの使い方
argsメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
argsメソッドは、NoMethodErrorが発生した際に、存在しないメソッドに渡されようとした引数を取得するメソッドです。
NoMethodErrorは、Rubyプログラムにおいて、オブジェクトが持っていない(定義されていない)メソッドを呼び出そうとしたときに発生する、組み込みのエラーです。このエラーが発生すると、プログラムの実行は中断されますが、エラーを適切にハンドリングすることで、何が問題だったのかを調査できます。
NoMethodErrorクラスのインスタンスは、エラー発生時に呼び出されようとしたメソッド名や、そのメソッドに渡された引数の情報を持っています。argsメソッドは、このNoMethodErrorオブジェクトが保持している情報の中から、渡されようとした引数の一覧を配列として返します。もし引数が何も渡されなかった場合は、空の配列が返されます。
このメソッドは、特にデバッグ作業において非常に有用です。例えば、プログラムがNoMethodErrorで停止した際に、argsメソッドを使ってどのような引数が渡されたのかを確認することで、なぜそのメソッドが呼び出されたのか、あるいはなぜその引数でエラーが発生したのかといった原因を特定する手助けとなります。これにより、誤ったメソッド呼び出しや、意図しない値の受け渡しを効率的に見つけ出し、コードの修正に役立てることができます。
構文(syntax)
1begin 2 "".some_undefined_method(1, 2, "example") 3rescue NoMethodError => error 4 error.args 5end
引数(parameters)
引数なし
引数はありません
戻り値(return)
Array
NoMethodError#args は、メソッド呼び出し時に渡された引数を配列として返します。