专注Golang,Python语言,云原生,人工智能领域得博主
过去经历的意义在于引导你,而非定义你,
只要我们足够努力,任何人都有无限潜力
欢迎点赞 收藏 ⭐留言!
实践
- panic 抛出异常函数
- recover 捕获异常函数
- 1:在一个主协成内捕获异常
- 2:假设子协成内部错误,看看主协成能不能捕获到
- 3:假设子协成错误需要自己捕获
package main
import (
"fmt"
)
func main(){
defer func(){
err := recover()
if err != nil{
fmt.Println("捕获到异常")
}
}()
panic("异常出现") //抛出异常,代表错误代码
}
运行结果
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) //防止主协成过早退出,导致子协成没执行
}
执行结果,主协成不能捕获到子协成的错误
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)
}
执行结果,成功捕获异常



