我覺得有點奇怪,因爲有一些問題有點像這樣,但是不夠接近或者沒有答案。ruby:在異常後繼續進行同樣的循環迭代
[編輯:我改寫的問題,以使其更清晰]
我有一個循環,做了一些事情,並用它玩,看看各種選項將努力使事情更易讀,清潔器。最後,我搞砸了一些東西,它被拋出並且異常,這是在救援時遇到的。到現在爲止還挺好。然而,我不能找到任何方法讓ruby在循環的同一次迭代中繼續使用以下語句 - 異常總是會產生以下語句,並轉移到下一次迭代 - 默認行爲。重做或重試將是毫無意義的,並導致無限循環,再次發生同樣的錯誤和異常,等等,
我有什麼辦法強制ruby以某種方式處理錯誤,然後只是繼續它離開的地方?
這裏是一個樣本,從我不知道在哪裏偷來,並適應。
3.times do |i|
begin
# first bunch of stuff to do
# second bunch of stuff to do
# third bunch of stuff to do
# fourth bunch of stuff to do
rescue => e
p e
end
end
基本上,在這個例子中,我想要的東西串的所有四個對移動到循環的下一次迭代中,即使其中一個應該引起錯誤之前執行。我不是要處理這個錯誤,讓我看到異常結果等等,但是有效地忽略它並繼續做其他所有事情。
任何想法?這可能是我以前從未見過的真正明顯的事情。
無論是否發生異常,是否應該執行'puts'? – Stefan
是的。這模擬了我正在搞亂的主程序中的字符串操作等等。 – MrBungleBear
如果您使用故意的流量控制異常,這可能是一個錯誤。爲什麼不只是一個'if'? – tadman