lib/rollbar/exception_reporter.rb in rollbar-2.19.1 vs lib/rollbar/exception_reporter.rb in rollbar-2.19.2
- old
+ new
@@ -1,21 +1,35 @@
module Rollbar
- module ExceptionReporter
+ module ExceptionReporter # :nodoc:
def report_exception_to_rollbar(env, exception)
- exception_message = exception.respond_to?(:message) ? exception.message : 'No Exception Message'
- Rollbar.log_debug "[Rollbar] Reporting exception: #{exception_message}"
+ return unless capture_uncaught?
- exception_data = Rollbar.log(Rollbar.configuration.uncaught_exception_level, exception, :use_exception_level_filters => true)
+ log_exception_message(exception)
+ exception_data = exception_data(exception)
+
if exception_data.is_a?(Hash)
env['rollbar.exception_uuid'] = exception_data[:uuid]
Rollbar.log_debug "[Rollbar] Exception uuid saved in env: #{exception_data[:uuid]}"
elsif exception_data == 'disabled'
Rollbar.log_debug '[Rollbar] Exception not reported because Rollbar is disabled'
elsif exception_data == 'ignored'
Rollbar.log_debug '[Rollbar] Exception not reported because it was ignored'
end
- rescue => e
+ rescue StandardError => e
Rollbar.log_warning "[Rollbar] Exception while reporting exception to Rollbar: #{e.message}"
+ end
+
+ def capture_uncaught?
+ Rollbar.configuration.capture_uncaught != false
+ end
+
+ def log_exception_message(exception)
+ exception_message = exception.respond_to?(:message) ? exception.message : 'No Exception Message'
+ Rollbar.log_debug "[Rollbar] Reporting exception: #{exception_message}"
+ end
+
+ def exception_data(exception)
+ Rollbar.log(Rollbar.configuration.uncaught_exception_level, exception, :use_exception_level_filters => true)
end
end
end