on_error in lieu of rescue, raise
A common bad pattern in ruby is to rescue any exception and accidentally clobber the exception.
begin some_method rescue StandardError # end
Most linters will complain if you write rescues like the code above. However, this could be useful if we want to perform an operation on any error, as long as we re-raise the exception after doing our work.
begin some_method rescue StandardError job.fail! raise end
Here, though, we run the risk of potentially forgetting to reraise the exception, or having to make exceptions in our linter for an operation that is overall benign.
What would be a thought on using another keyword that doesn't actually rescue an exception, but performs an operation in the event of an error? Similar to
ensure, but only in the event of an error.
begin some_method on_error StandardError job.fail! end
(obviously, someone more creative than me should come up with a better name)