< :前の番号
^ :番号順リスト
> :次の番号
P :前の記事(スレッド移動)
N :次の記事(スレッド移動)
|<:前のスレッド
>|:次のスレッド
^ :返事先
_:自分への返事
>:同じ返事先を持つ記事(前)
<:同じ返事先を持つ記事(後)
---:分割してスレッド表示、再表示
| :分割して(縦)スレッド表示、再表示
~ :スレッドのフレーム消去
.:インデックス
..:インデックスのインデックス
Issue #14684 has been updated by RubyBugs (A Nonymous).
nobu (Nobuyoshi Nakada) wrote:
> `$!` isn't accessible outside `rescue` clause, even without irb.
In IRB, should `$!` be set, or a proxy for it be set, when the IRB eval handles an exception?
----------------------------------------
Feature #14684: IRB swallows exceptions
https://bugs.ruby-lang.org/issues/14684#change-71482
* Author: RubyBugs (A Nonymous)
* Status: Assigned
* Priority: Normal
* Assignee: keiju (Keiju Ishitsuka)
* Target version:
----------------------------------------
# Summary
IRB swallows exceptions, doesn't provide programatic access to raised exception in session.
## Details
On Ruby 2.3.4, we find it surprising that exceptions in IRB are swallowed, and are not accessible at the two locations we checked:
1. In the global variable for most recent exception `$!`
2. In the return value of evaluating the expression `_`
Consider this IRB session:
~~~ ruby
def method_which_raises
1/0
end
method_which_raises
# ZeroDivisionError: divided by 0
# from (irb):10:in `/'
# from (irb):10:in `method_which_raises'
# from (irb):13
# from /Users/marcsiegel/.rubies/ruby-2.3.4/bin/irb:11:in `<main>'
~~~
### Observed
Neither `_` nor `$!` give access to the raised exception, so that during development or debugging, one could dig further into what had occurred.
### Expected
Either `_` or `$!` would give programmatic access in IRB to an exception
--
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>