From: co000ri@... Date: 2016-02-11T13:41:39+00:00 Subject: [ruby-core:73774] [Ruby trunk Feature#12063] KeyError#receiver and KeyError#name Issue #12063 has been reported by Yuki Kurihara. ---------------------------------------- Feature #12063: KeyError#receiver and KeyError#name https://bugs.ruby-lang.org/issues/12063 * Author: Yuki Kurihara * Status: Open * Priority: Normal * Assignee: ---------------------------------------- I propose **KeyError#receiver** and **KeyError#name** (or KeyError#key) like NameError. I think these method help to debug. And will be able to find typo on did_you_mean gem. See also https://github.com/yuki24/did_you_mean/pull/71 ~~~ruby begin h = {foo: 1, bar: 2} h.fetch(:bax) rescue KeyError => e p e.receiver #=> {foo: 1, bar: 2} equal `h` p e.name #=> :bax end ~~~ ~~~ruby begin h = {foo: 1, bar: 2, baz: 3} h.fetch_values(:bar, :bax) rescue KeyError => e p e.receiver #=> {foo: 1, bar: 2, baz: 3} equal `h` p e.name #=> :bax end ~~~ ~~~ruby begin ENV.fetch("HOEM") rescue KeyError => e p e.receiver #=> ENV p e.name #=> "HOEM" end ~~~ ~~~ruby begin sprintf("%<foo>d", {fooo: 1}) rescue KeyError => e p e.receiver #=> {fooo: 1} p e.name #=> :foo end ~~~ -- https://bugs.ruby-lang.org/ Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>