introduction
在實際業務開發中,我們可能會創建上萬個goroutine,
當其中某個goroutine panic
了,且沒有捕獲(recover
)錯誤,
那麼整個程序將會崩潰。
所以,養成好習慣,
每當創建一個goroutine,請記得於函數內寫下recover
未捕獲錯誤
即使創建上萬個goroutine,只要其中一個panic
,
程序亦無法正常執行
1 | package main |
result
1 | ... |
- 其中一個goroutine發生panic導致主程序全數崩潰無法正常運行
捕獲(recover)錯誤
養成好習慣,不管是在匿名函數或是函數中使用goroutine,
請務必記得,於函數開始使用defer
搭配recover
捕獲錯誤
1 | package main |
result
1 | ... |
- 即使其中有個goroutine發生
panic
仍不影響,其他業務及主程序的運行