在代碼片段中首次執行循環期間,發生異常throws.my問題是如何在發生恐慌時繼續執行循環的下一次迭代。如在java中嘗試catch機制,循環將繼續執行循環的下一次迭代。當發生異常時繼續執行循環
package main
import (
"fmt"
)
func main() {
var arr []int = []int{5, 6, 7, 8, 9}
fmt.Println(arr)
for i := 6; i < 10; i++ {
defer func() {
fmt.Println("aaa")
if err := recover(); err != nil {
fmt.Printf("error is %v\n", err)
}
}()
arr[i] = i
}
}
1.執行不會在推遲執行後的循環。2.您需要設置至少10作爲片'arr'的容量 –
恐慌**不是**例外。對於習慣於其他語言的程序員來說,這是一種常見的錯誤,但它根本不起作用!如果你在Go中有一個恐慌,那麼這通常意味着你犯了一個需要糾正的編程錯誤,而不是通過「捕捉」恐慌來「處理」(就像你在這裏所做的那樣)。 – Carpetsmoker
我的問題是如何在發生恐慌時繼續執行循環的下一次迭代,謝謝。喜歡在java中嘗試catch機制,循環將繼續執行循環的下一次迭代。 – witrus