2067: def standard_exception_handling
2068: begin
2069: yield
2070: rescue SystemExit => ex
2071:
2072: raise
2073: rescue OptionParser::InvalidOption => ex
2074:
2075: exit(false)
2076: rescue Exception => ex
2077:
2078: $stderr.puts "#{name} aborted!"
2079: $stderr.puts ex.message
2080: if options.trace
2081: $stderr.puts ex.backtrace.join("\n")
2082: else
2083: $stderr.puts ex.backtrace.find {|str| str =~ /#{@rakefile}/ } || ""
2084: $stderr.puts "(See full trace by running task with --trace)"
2085: end
2086: exit(false)
2087: end
2088: end