2010-12-12 4 views
0

다음과 같은 오류가 나타납니다.레일 3 - 예외 발생? 시작, 구조 및 기대치 높이기 사용하기

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과 같은 서비스를 사용할 것입니다. 어떻게 @person 나는 그렇게 MissingInfo 안에 그 3 개 바르 날을 제공 할 수 resuce해야합니까, "이메일 모델을 찾을 수없는 종류", @message을 MissingInfo 인상 :

+0

감사 라이언, 내가 사용할 수 있도록하려면? – AnApprentice

+0

@AnApprentice : 예외가 발생하기 전에, 그들은 구조에서 사용할 수 변수를 설정합니다. 구조의 내부 –

+0

감사했다하지만 세부하지 않았다 라이언 ...는 MissingInfo => 세부 사항, 세부 사항 세부 정보로 출력된다 MailingJob :: MissingInfo 아니라 내가 예외가 발생한 때 설정 한 문자열입니다. 아이디어? – AnApprentice