summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
Diffstat (limited to 'bin')
-rwxr-xr-xbin/rdoc23
1 files changed, 18 insertions, 5 deletions
diff --git a/bin/rdoc b/bin/rdoc
index e50285478d..8fafd01b0f 100755
--- a/bin/rdoc
+++ b/bin/rdoc
@@ -13,10 +13,23 @@ require 'rdoc/rdoc'
begin
r = RDoc::RDoc.new
r.document ARGV
-rescue Interrupt
- $stderr.puts
- $stderr.puts "Interrupted"
-rescue RDoc::Error => e
- $stderr.puts e.message
+rescue SystemExit
+ raise
+rescue Exception => e
+ if $DEBUG_RDOC then
+ $stderr.puts e.message
+ $stderr.puts "#{e.backtrace.join "\n\t"}"
+ $stderr.puts
+ elsif Interrupt === e then
+ $stderr.puts
+ $stderr.puts 'Interrupted'
+ else
+ $stderr.puts "uh-oh! RDoc had a problem:"
+ $stderr.puts e.message
+ $stderr.puts
+ $stderr.puts "run with --debug for full backtrace"
+ end
+
exit 1
end
+