🌌 專注Golang,Python語言,云原生,人工智能領域得博主
💜 過去經歷的意義在于引導你,而非定義你,
💜 只要我們足夠努力,任何人都有無限潛力
📢 歡迎點贊 👍 收藏 ?留言!

- 🚀panic 拋出例外函式
- 🚀recover 捕獲例外函式
📣實踐
- 📣1:在一個主協成內捕獲例外
- 📣2:假設子協成內部錯誤,看看主協成能不能捕獲到
- 📣3:假設子協成錯誤需要自己捕獲
📣1:在一個主協成內捕獲例外
package main
import (
"fmt"
)
func main(){
defer func(){
err := recover()
if err != nil{
fmt.Println("捕獲到例外")
}
}()
panic("例外出現") //拋出例外,代表錯誤代碼
}
🚀運行結果

📣2:假設子協成內部錯誤,看看主協成能不能捕獲到
package main
import (
"fmt"
)
func Calculate(){
panic("例外出現") // 同樣代表錯誤代碼
}
func main(){
defer func(){
err := recover()
if err != nil{
fmt.Println("捕獲到例外")
}
}()
go Calculate()
time.Sleep(time.Second*3) //防止主協成過早退出,導致子協成沒執行
}
🚀 執行結果,主協成不能捕獲到子協成的錯誤

📣3:假設子協成錯誤需要自己捕獲
package main
import (
"fmt"
"time"
)
func Calculate(){
defer func(){
err := recover()
if err != nil{
fmt.Println("協成內部捕獲例外")
}
}()
panic("例外出現")
}
func main(){
go Calculate()
time.Sleep(time.Second*3)
}
執行結果,成功捕獲例外

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/299914.html
標籤:AI
