Project

General

Profile

Feature #15458

Automatic Exception#cause print in IRB

Added by jnchito (Junichi Ito) 4 months ago.

Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:90693]

Description

According to Ruby 2.6 NEWS, the following feature will be added:

Print cause of the exception if the exception is not caught and printed its backtraces and error message [Feature #8257]

I expected it would be applied in IRB too, but it wasn't. Here is my example:

> begin
> 1/0
> rescue => e
> e.mesage
> end
Traceback (most recent call last):
        5: from /Users/jnito/.rbenv/versions/2.6.0-rc1/bin/irb:23:in `<main>'
        4: from /Users/jnito/.rbenv/versions/2.6.0-rc1/bin/irb:23:in `load'
        3: from /Users/jnito/.rbenv/versions/2.6.0-rc1/lib/ruby/gems/2.6.0/gems/irb-0.9.6/exe/irb:11:in `<top (required)>'
        2: from (irb):1
        1: from (irb):4:in `rescue in irb_binding'
NoMethodError (undefined method `mesage' for #<ZeroDivisionError: divided by 0>)
Did you mean?  message

On the other hand, when I run that code via ruby command, cause of the exception is automatically printed:

$ ruby sample.rb
Traceback (most recent call last):
    1: from sample.rb:2:in `<main>'
sample.rb:2:in `/': divided by 0 (ZeroDivisionError)
    1: from sample.rb:1:in `<main>'
sample.rb:4:in `rescue in <main>': undefined method `mesage' for #<ZeroDivisionError: divided by 0> (NoMethodError)
Did you mean?  message

I feel it would be more natural and useful if the new feature would work in IRB too.

Also available in: Atom PDF