actionmailer/lib/action_mailer/rescuable.rb
# frozen_string_literal: true
module ActionMailer # :nodoc:
# = Action Mailer \Rescuable
#
# Provides
# {rescue_from}[rdoc-ref:ActiveSupport::Rescuable::ClassMethods#rescue_from]
# for mailers. Wraps mailer action processing, mail job processing, and mail
# delivery to handle configured errors.
module Rescuable
extend ActiveSupport::Concern
include ActiveSupport::Rescuable
class_methods do
def handle_exception(exception) # :nodoc:
rescue_with_handler(exception) || raise(exception)
end
end
def handle_exceptions # :nodoc:
yield
rescue => exception
rescue_with_handler(exception) || raise
end
private
def process(...)
handle_exceptions do
super
end
end
end
end