backtrace and backtrace_locations can be nil (#2358)

Exception#backtrace and Exception#backtrace_locations can both be nil if
not set. The former can be set via `Exception#set_backtrace`, but the
later is only ever set at runtime via `setup_backtrace`.
This commit is contained in:
Steven Harman 2019-08-14 10:35:47 -04:00 коммит произвёл Aaron Patterson
Родитель 48e9155e65
Коммит 7da40d74e1
1 изменённых файлов: 9 добавлений и 3 удалений

12
error.c
Просмотреть файл

@ -1114,7 +1114,7 @@ exc_inspect(VALUE exc)
/*
* call-seq:
* exception.backtrace -> array
* exception.backtrace -> array or nil
*
* Returns any backtrace associated with the exception. The backtrace
* is an array of strings, each containing either ``filename:lineNo: in
@ -1139,6 +1139,12 @@ exc_inspect(VALUE exc)
* prog.rb:2:in `a'
* prog.rb:6:in `b'
* prog.rb:10
*
* In the case no backtrace has been set, +nil+ is returned
*
* ex = StandardError.new
* ex.backtrace
* #=> nil
*/
static VALUE
@ -1179,13 +1185,13 @@ rb_get_backtrace(VALUE exc)
/*
* call-seq:
* exception.backtrace_locations -> array
* exception.backtrace_locations -> array or nil
*
* Returns any backtrace associated with the exception. This method is
* similar to Exception#backtrace, but the backtrace is an array of
* Thread::Backtrace::Location.
*
* Now, this method is not affected by Exception#set_backtrace().
* This method is not affected by Exception#set_backtrace().
*/
static VALUE
exc_backtrace_locations(VALUE exc)