1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00
rails--rails/activejob/test/jobs/rescue_job.rb

28 lines
673 B
Ruby
Raw Normal View History

require_relative "../support/job_buffer"
class RescueJob < ActiveJob::Base
2014-05-22 19:14:13 -04:00
class OtherError < StandardError; end
rescue_from(ArgumentError) do
JobBuffer.add("rescued from ArgumentError")
arguments[0] = "DIFFERENT!"
2014-08-25 10:34:50 -04:00
retry_job
end
rescue_from(ActiveJob::DeserializationError) do |e|
JobBuffer.add("rescued from DeserializationError")
JobBuffer.add("DeserializationError original exception was #{e.cause.class.name}")
end
def perform(person = "david")
2014-05-22 19:14:13 -04:00
case person
when "david"
raise ArgumentError, "Hair too good"
when "other"
raise OtherError
else
JobBuffer.add("performed beautifully")
end
end
end