處理 Go 例程中的恐慌
當 Go 例程中發生恐慌時,正確處理它是至關重要的。使用recover函數可以有效地檢索panic值並進行對應的處理。
一種常見的方法是使用延遲函數在主函數中處理panic。然而,當panic發生在單獨的goroutine中時,這種方法無法捕獲它。
在給出的例子中:
panic發生在goroutine內的handle函數中,但是主函數中的延遲恢復函數無法捕獲它。這是因為恢復僅在發生恐慌的相同 goroutine 中調用時才有效。
要解決此問題,請將延遲的恢復函數呼叫移到句柄函數中:
使用此修改後,當handle函數中出現panic時,同一個goroutine中的延遲恢復函數將捕獲並相應地處理它。
以上是如何處理單獨的 Go 例程中的恐慌?的詳細內容。更多資訊請關注PHP中文網其他相關文章!