Skip to content

Instantly share code, notes, and snippets.

@jasonrudolph
Created January 23, 2014 16:02
Show Gist options
  • Save jasonrudolph/584058a67b64d89e9957 to your computer and use it in GitHub Desktop.
Save jasonrudolph/584058a67b64d89e9957 to your computer and use it in GitHub Desktop.
def raise_error_with_at_least_n_backtrace_lines(n)
raise 'Boom!' if caller.length >= n
raise_error_with_at_least_n_backtrace_lines(n)
end
require 'pp'
def demo(n)
puts "n = #{n}"
puts "*" * 80
begin
raise_error_with_at_least_n_backtrace_lines n
rescue StandardError => e
pp e.backtrace
end
end
demo(1)
demo(20)
$ ruby manufacture_backtraces.rb
n = 1
********************************************************************************
["manufacture_backtraces.rb:2:in `raise_error_with_at_least_n_backtrace_lines'",
"manufacture_backtraces.rb:11:in `demo'",
"manufacture_backtraces.rb:17:in `<main>'"]
n = 20
********************************************************************************
["manufacture_backtraces.rb:2:in `raise_error_with_at_least_n_backtrace_lines'",
"manufacture_backtraces.rb:3:in `raise_error_with_at_least_n_backtrace_lines'",
"manufacture_backtraces.rb:3:in `raise_error_with_at_least_n_backtrace_lines'",
"manufacture_backtraces.rb:3:in `raise_error_with_at_least_n_backtrace_lines'",
"manufacture_backtraces.rb:3:in `raise_error_with_at_least_n_backtrace_lines'",
"manufacture_backtraces.rb:3:in `raise_error_with_at_least_n_backtrace_lines'",
"manufacture_backtraces.rb:3:in `raise_error_with_at_least_n_backtrace_lines'",
"manufacture_backtraces.rb:3:in `raise_error_with_at_least_n_backtrace_lines'",
"manufacture_backtraces.rb:3:in `raise_error_with_at_least_n_backtrace_lines'",
"manufacture_backtraces.rb:3:in `raise_error_with_at_least_n_backtrace_lines'",
"manufacture_backtraces.rb:3:in `raise_error_with_at_least_n_backtrace_lines'",
"manufacture_backtraces.rb:3:in `raise_error_with_at_least_n_backtrace_lines'",
"manufacture_backtraces.rb:3:in `raise_error_with_at_least_n_backtrace_lines'",
"manufacture_backtraces.rb:3:in `raise_error_with_at_least_n_backtrace_lines'",
"manufacture_backtraces.rb:3:in `raise_error_with_at_least_n_backtrace_lines'",
"manufacture_backtraces.rb:3:in `raise_error_with_at_least_n_backtrace_lines'",
"manufacture_backtraces.rb:3:in `raise_error_with_at_least_n_backtrace_lines'",
"manufacture_backtraces.rb:3:in `raise_error_with_at_least_n_backtrace_lines'",
"manufacture_backtraces.rb:3:in `raise_error_with_at_least_n_backtrace_lines'",
"manufacture_backtraces.rb:11:in `demo'",
"manufacture_backtraces.rb:19:in `<main>'"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment