From: eregontp@... Date: 2017-04-02T10:00:49+00:00 Subject: [ruby-core:80535] [Ruby trunk Feature#12063] KeyError#receiver and KeyError#name Issue #12063 has been updated by Eregon (Benoit Daloze). I think "name" is more consistent with other exceptions, such as NameError#name and NoMethodError#name (by inheritance). ---------------------------------------- Feature #12063: KeyError#receiver and KeyError#name https://bugs.ruby-lang.org/issues/12063#change-64037 * Author: ksss (Yuki Kurihara) * Status: Open * Priority: Normal * Assignee: * Target version: ---------------------------------------- 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("%d", {fooo: 1}) rescue KeyError => e p e.receiver #=> {fooo: 1} p e.name #=> :foo end ~~~ -- https://bugs.ruby-lang.org/ Unsubscribe: