2010-12-12 50 views
0

,我發現了以下錯誤:rails 3 - 引發異常?使用開始,救援和飼養Expections

MailingJob failed with NameError: uninitialized constant MailingJob::MissingInfo - 2 failed attempts 

我的代碼:

class MailingJob < Struct.new(:mailing_id) 
    def perform 
    begin 
     @message_reply = .... 
     raise MissingInfo, "Message reply not found" if @message_reply.length == 0 
     ..... 
    rescue MissingInfo => detail 
     Rails.logger.info "RESCUED - MissingInfo,RESCUED - MissingInfo, RESCUED - MissingInfo, RESCUED - MissingInfo, RESCUED - MissingInfo" 
     Rails.logger.info detail 
    end 

    end 

這是我第一次使用開始/救援,建議,幫助嗎?由於

回答

1

你試圖使用一個未定義的常量。您必須定義異常類:

class MissingInfo < StandardError; end 

其次,我不會依賴日誌來捕獲錯誤。相反,我會使用服務,如Hoptoad

+0

感謝瑞安,我希望能夠使用:提高MissingInfo,「電子郵件型號類型未找到」,@message,@person我怎麼做起來很毒害的耐受MissingInfo能給我提供這些3個瓦爾裏面? – AnApprentice 2010-12-12 20:59:52

+0

@AnApprentice:在引發異常之前設置變量,它們將在救援中可用。 – 2010-12-12 22:08:59

+0

感謝Ryan的工作,但細節沒有...救援MissingInfo內部=>細節,細節輸出爲細節:MailingJob :: MissingInfo,而不是我提出異常時設置的字符串。想法? – AnApprentice 2010-12-12 22:22:03