From 7da40d74e12cee72b96554a2d201965f1c7dedd7 Mon Sep 17 00:00:00 2001 From: Steven Harman Date: Wed, 14 Aug 2019 10:35:47 -0400 Subject: 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`. --- error.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/error.c b/error.c index 90a9c44939..786c525be8 100644 --- a/error.c +++ b/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) -- cgit v1.2.3