- 1.0.0
- 1.1.6
- 1.2.6
- 2.0.3
- 2.1.0
- 2.2.1
- 2.3.8
- 3.0.0
- 3.0.9
- 3.1.0
- 3.2.1
- 3.2.8
- 3.2.13
- 4.0.2
- 4.1.8
- 4.2.1
- 4.2.7
- 4.2.9
- 5.0.0.1
- 5.1.7
- 5.2.3
- 6.0.0
- 6.1.3.1
- 6.1.7.7
- 7.0.0 (0)
- 7.1.3.2 (-38)
- 7.1.3.4 (0)
- What's this?
+ActiveSupport::ErrorReporter+ is a common interface for error reporting services.
To rescue and report any unhandled error, you can use the handle method:
Rails.error.handle do do_something! end
If an error is raised, it will be reported and swallowed.
Alternatively if you want to report the error but not swallow it, you can use record
Rails.error.record do do_something! end
Both methods can be restricted to only handle a specific exception class
maybe_tags = Rails.error.handle(Redis::BaseError) { redis.get("tags") }
You can also pass some extra context information that may be used by the error subscribers:
Rails.error.handle(context: { section: "admin" }) do # ... end
Additionally a severity can be passed along to communicate how important the error report is. severity can be one of :error, :warning or :info. Handled errors default to the :warning severity, and unhandled ones to error.
Both handle and record pass through the return value from the block. In the case of handle rescuing an error, a fallback can be provided. The fallback must be a callable whose result will be returned when the block raises and is handled:
user = Rails.error.handle(fallback: -> { User.anonymous }) do User.find_by(params) end
Constants
SEVERITIES = %i(error warning info)
Attributes
[RW] | logger |