2014-12-19 66 views
0

在Perl我處理錯誤有:Ruby的錯誤處理類似於Perl

eval{ 
    }; 
if([email protected]) { 
    } 

在Ruby中我使用:

begin 
rescue Exception => e 
sleep 2 
end 

是用Ruby這樣做正確的方式,而將這項工作如果互聯網或服務器宕機? 如果上述錯誤是否有任何方法在Ruby中做類似於Perl?

+0

關於perl'eval {}的附註;'http://stackoverflow.com/a/4006339/223226 – 2014-12-19 11:55:51

回答

2

如果您需要從可能的例外中解救出來,那麼您的答案是正確的。您必須:

begin 
    # do some useful but dangerious work 
rescue StandardError => e 
    # something went wrong, try to work around it; 
    # object "e" containts usefull error information 
ensure 
    # anyway, cleanup after doing what you've started 
end 

P.S.如果服務器直接出現故障(例如硬件關閉) - 沒有例外的代碼處理可以幫助您解決問題。

P.P.S.互聯網可能不會很快停止。