2015-08-24 20 views
6

ActiveJob docs for exception handling zapewnić ten przykład dla sposobu wykonywania obsługi wyjątków w ramach zadania:W ActiveJob, jak złapać żadnego wyjątku

class GuestsCleanupJob < ActiveJob::Base 
    queue_as :default 

    rescue_from(ActiveRecord::RecordNotFound) do |exception| 
    # Do something with the exception 
    end 

    def perform 
    # Do something later 
    end 
end 

używam tej techniki w aplikacji buduję i przechwytywanie pewne szczególne wyjątki. Moje pytanie brzmi: jak uchwycić wszystkie wyjątki?

Przechwytywam różne rodzaje wyjątków i wykonuję tę samą procedurę w każdy sposób, więc chciałbym podciągnąć mój kod, a także, w mojej obecnej implementacji, pewne wyjątki są ignorowane, co oznacza, że ​​w niektórych przypadkach moja praca kończy się po cichu. .

Jak przechwycić ogólny wyjątek za pomocą funkcji ActiveJob?

Odpowiedz

12

Spróbuj tego

class GuestsCleanupJob < ActiveJob::Base 
    ... 

    rescue_from(StandardError) do |exception| 
    # Do something with the exception 
    end 

    ... 
end 
+0

Dzięki, to jest właściwa technika! W moim przypadku wystąpiło błędne wyrażenie w samym bloku obsługi wyjątków, które spowodowało cichy błąd – metahamza