Bug #9285
closedException message of Errno::ENOENT contains strings @ rb_sysopen and @ dir_initialize in Ruby 2.1
Description
Exception message of Errno::ENOENT exception contains strings "@ rb_sysopen" or "@ dir_initialize" in Ruby 2.1.0-rc1. It doesn't contain them in Ruby 2.0. I would expect exception message not to contain those strings.
Example in Ruby 2.1:
$ irb
2.1.0dev :001 > File.new('/path/to/not/existent/file')
Errno::ENOENT: No such file or directory @ rb_sysopen - /path/to/not/existent/file
from (irb):1:in initialize' from (irb):1:in
new'
from (irb):1
from /home/andrey/.rvm/rubies/ruby-2.1.0-rc1/bin/irb:11:in <main>' 2.1.0dev :002 > Dir.open('/path/to/not/existent/folder') Errno::ENOENT: No such file or directory @ dir_initialize - /path/to/not/existent/folder from (irb):2:in
open'
from (irb):2
from /home/andrey/.rvm/rubies/ruby-2.1.0-rc1/bin/irb:11:in `'
2.1.0dev :003 >
Version: ruby 2.1.0dev (2013-12-20 trunk 44301) [x86_64-linux]
It's installed via RVM.
Ubuntu 13.04
Updated by naruse (Yui NARUSE) about 11 years ago
At first, I say what it is.
It is the C function name where the exception is raised.
Therefore you can't the name from Ruby.
The background is that IO-related exceptions may be raised many places.
If I encounter an unexpected exception, only errno is not sufficient information.
I cannot debug without where the error is generated.
The string gives us the information.
Anyway normal ruby users don't need such information.
Therefore it may be hidden on release build.
Updated by kosaki (Motohiro KOSAKI) almost 11 years ago
I don't like just turning hidden because I can't agree release build doesn't need debug.
But I agree current format is a little confusable and C function name is less important.
String format could be improved if someone propose better idea.
Updated by vo.x (Vit Ondruch) almost 8 years ago
- Backport deleted (
1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN)
Is this worth of keeping open? It does not look it will be reverted. And seeing "temporary" workarounds such as 1 does not make the situation any better.
Updated by naruse (Yui NARUSE) almost 8 years ago
- Status changed from Open to Rejected
Through the experience in this three years, this error message sometimes help us to debug.
It is useful and kept as is.