From: eike@... Date: 2016-06-11T21:41:04+00:00 Subject: [ruby-core:75955] [Ruby trunk Bug#12482] ArgumentError.new(nil) should give a better description Issue #12482 has been reported by Eike Dierks. ---------------------------------------- Bug #12482: ArgumentError.new(nil) should give a better description https://bugs.ruby-lang.org/issues/12482 * Author: Eike Dierks * Status: Open * Priority: Normal * Assignee: * ruby -v: * Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- Currently: ~~~ ArgumentError.new(nil) => # ArgumentError.new(nil).to_s => "ArgumentError" ArgumentError.new(nil).inspect => "#" ~~~ I want to suggest to change this to "ArgumentError(nil)" instead. Rational: For testing arguments, I frequently use: ~~~ raise ArgumentError.new(arg) unless ExpectedClass === arg ~~~ However when arg is nil, this raises "ArgumentError" while raising "ArgumentError(nil)" would be much nicer. This would differentiate between ArgumentError.new() and ArgumentError.new(nil) Suggested changes I't looks like ArgumentError#initialize inherits Exception#initialize I'd like to suggest to differentiate between Exception.new() and Exception.new(nil) ~~~ def Exception.new(msg = :__Exception_msg_arg_undefined___) case arg when :__Exception_msg_arg_undefined___ # msg = "ClassName" when nil # msg = "ClassName(nil)" end ~~~ Impact I believe this should not break existing code as no code should rely on the string returned. -- https://bugs.ruby-lang.org/ Unsubscribe: