专注Golang,Python语言,云原生,人工智能领域得博主
过去经历的意义在于引导你,而非定义你,
只要我们足够努力,任何人都有无限潜力
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) }
执行结果,成功捕获异常
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。