-
-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Open
Description
This is a little-known (I believe) and rarely used feature of the rescue operator, which allows assigning an exception using an object's writer method:
Foo = Struct.new(:exception)
foo = Foo.new
begin
do_something_that_might_raise
rescue => foo.exception # `Foo#exception=` will be called
Rails.error.report(foo.exception)
do_something_with_exception(foo.exception)
end
I propose introducing a new cop that detects such patterns and suggests expanding them to
Foo = Struct.new(:exception)
foo = Foo.new
begin
do_something_that_might_raise
rescue => e
foo.exception = e # if required
Rails.error.report(e)
do_something_with_exception(e)
end
This cop could also support an alternative style that, conversely, suggests using the writer variant (where applicable).
Metadata
Metadata
Assignees
Labels
No labels