2016-12-06 71 views
1

我有一個過程,是一個beginrescue循環中,看起來像這樣:是否有可能開始..救援不捕捉異常?

begin 
    # do some stuff 
rescue Exception => e 
    Rails.logger.info "#{e.response.message}" 
end 

是否有可能在這抓不住一個例外?出於某種原因,我的過程正在運行,不會拋出錯誤,但隨機不工作。

+0

您是否在生產環境?因爲你不應該在那裏看到信息記錄。 – Ursus

+0

如果您營救「例外」,任何事情都可能發生。你應該趕上'StandardError' –

+2

_「不工作」_比較模糊,你能更具體嗎? – Stefan

回答

0

也許你可以臨時評論救援塊:

#begin 
    ... 
#rescue Exception => e 
#Rails.logger.info "#{e.response.message}" 

,或者你可以提高救援提出這個異常:

begin 
    do some stuff 
rescue Exception => e 
    Rails.logger.info "#{e.response.message}" 
    raise e 
end 
1

只需使用:

# do some stuff 

沒有任何開始/救援塊,並看看哪個錯誤出來。假設它是NoMethodError。也許你在你的一些代碼中有一個錯字,比如"abc".spilt。 糾正它。再試一次,也許你會得到Errno::ECONNRESET

嘗試:

begin 
    # do some stuff 
rescue Errno::ECONNRESET => e 
    Rails.logger.info "#{e.message}" 
end 

沖洗和重複,而是從頭開始。 rescue Exception只是too much