class KeyError

[edit]

要約

Hash#fetch などで key に対応する value がない場合に発生します。

Ruby 1.8 以前では同様の場面で IndexError が発生していました。互換性のため、KeyErrorIndexError のサブクラスになっています。

目次

インスタンスメソッド

継承しているメソッド

Exceptionから継承しているメソッド

インスタンスメソッド

key -> object[permalink][rdoc][edit]

KeyError の原因となったメソッド呼び出しのキーを返します。

[EXCEPTION] ArgumentError:
キーが設定されていない時に発生します。

例:

h = Hash.new
begin
  h.fetch('gumby'*20)
rescue KeyError => e
  p e.message            # => "key not found: \"gumbygumbygumbygumbygumbygumbygumbygumbygumbygumbygumbygumbyg..."
  p 'gumby'*20 == e.key  # => true
end
receiver -> object[permalink][rdoc][edit]

KeyError の原因となったメソッド呼び出しのレシーバを返します。

[EXCEPTION] ArgumentError:
レシーバが設定されていない時に発生します。

例:

h = Hash.new
begin
  h.fetch('gumby'*20)
rescue KeyError => e
  p e.message             # => "key not found: \"gumbygumbygumbygumbygumbygumbygumbygumbygumbygumbygumbygumbyg..."
  p h.equal?(e.receiver)  # => true
end