- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
e p e.backtrace_-6ren">
当我调用 Exception#backtrace_locations
时,它通常会按预期返回一个数组:
begin
raise "foo"
rescue => e
p e.backtrace_locations
end
# => ["this_file:2:in `<main>'"]
如果我手动引发 ArgumentError
也是一样的:
begin
raise ArgumentError.new
rescue => e
p e.backtrace_locations
end
# => ["this_file:2:in `<main>'"]
但是,当我通过调用参数数量错误的方法引发真正的 ArgumentError
时,backtrace_locations
为 nil
,这是意外的对我来说:
def foo; end
begin
foo(:bar)
rescue => e
p e.backtrace_locations
end
# => nil
在相同的情况下,经典的Exception#backtrace
返回一个数组,如预期的那样:
def foo; end
begin
foo(:bar)
rescue => e
p e.backtrace
end
# => ["this_file:1:in `foo'", "this_file:4:in `<main>'"]
上面第三种情况Exception#backtrace_locations
的返回值是nil
是故意的吗?如果是这样,什么时候 Exception#backtrace_locations
变为 nil
?有这方面的文件吗?或者,它是 Ruby 错误吗?
此时,我认为这是一个错误,并且reported it .
最佳答案
这是一个错误,维护者 ko1 只是 fixed it在修订版 44411 中。希望它能进入今天的 Ruby 2.1 版本。
编辑 原来还没有修复。今天发布的 Ruby 2.1 仍然存在这个问题。
编辑 根据维护者的说法,该修复将合并到 Ruby 2.1.1 中。
关于ruby - ArgumentError 是否缺少 backtrace_locations?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20765660/
当我调用 Exception#backtrace_locations 时,它通常会按预期返回一个数组: begin raise "foo" rescue => e p e.backtrace_
我是一名优秀的程序员,十分优秀!