0

Dropbox에 액세스 키와 암호가 10 분마다 승인되는지 확인하기위한 요청을 실행하는 rufus 스케줄러가 있습니다. 이 권한이없는 경우Rufus Scheduler - 예외 잡기 및 조건문 실행

는 다음과 같은 예외가보고됩니다

DropboxAuthError in GalleryController#index 

#<Net::HTTPUnauthorized:0x7ef04c8> 

의 I가이를 감지 내 스케줄러에있는 코드 루퍼스 - 스케줄러 문서에서입니다 :

def scheduler.on_exception(job, exception) 
    puts "job #{job.job_id} caught exception '#{exception}'" 
end 

나는 때문에를 그 예외를 잡으려는 경우 예외를 값과 비교하는 조건문을 수행 할 수 있기를 원합니다.

def scheduler.on_exception(job, exception) 
    if exception == "DropboxAuthError" 
    puts "job #{job.job_id} caught exception '#{exception}'" 
    end 
end 

하지만 예외가 개체이기 때문에 비교할 수 없습니다.

아무도 아이디어를 얻었습니까?

감사합니다. 고양이

if exception.message.match(/DropboxAuthError/) 
    # ... 
end 

if exception.is_a?(Net::HTTPUnauthorized) 
    # ... 
end 

을 피부하기

답변

0

많은 방법은 루비 객체의 두려워하지 마십시오. 구조가 당신을 위해 검사 유형을 수행

scheduler.every '10m' do 
    begin 
    # do the API call... 
    rescue Net::HTTPUnauthorized => ne 
    puts "not authorized" 
    rescue => e 
    puts "something wrong happened " + e.inspect 
    end 
end 

: 당신이 뭔가를 당신이 루퍼스 - 스케줄러 문서에서 주운 처리 전역 오류를 방지 할 수

참고.

건배.