オブジェクトに存在しないメソッドを呼び出すと、NoMethodErrorが発生します。
Object.new.foo
出力します:
NoMethodError:#の未定義のメソッド `foo'
その間
nil.foo
出力します:
NoMethodError:nil:NilClassの未定義のメソッド `foo'
自分の例外を発生させるときにこの動作をコピーしたい、つまり
foo = Object.new
raise StandardError, "#{foo} triggered an error"
これは出力します:
StandardError:#
<Object:0xbf37748>
エラーをトリガーしました
それはまさに私が欲しいものです。
不運にも
foo = nil
raise StandardError, "#{foo} triggered an error"
出力します
StandardError:エラーをトリガーしました
これはおそらくnil.to_s
です""
。nil:NillClass
出力として取得するにはどうすればよいですか?