golang中处理panic的正确姿势
发布时间:2020-12-16 09:34:08 所属栏目:大数据 来源:网络整理
导读:golang中panic的处理没有其他语言中try-catch语法那么简单。 大部分例子的panic处理都是在退出环节。那么如何在正常业务流程中处理panic,然后不影响全局呢? // 业务处理1,定义myStrctureisDone := make(chan int)go func() { defer func() { if err := re
golang中panic的处理没有其他语言中try-catch语法那么简单。 // 业务处理1,定义myStrcture isDone := make(chan int) go func() { defer func() { if err := recover(); err != nil { log.E(this.Ctx,"Skip panic","tmpInfo=[%+v]",tmpInfo) } isDone <- 1 }() myStrcture.Ip = tmpInfo.Ip myStrcture.Country = tmpInfo.Address.Country.Name //可能panic myStrcture.Province = tmpInfo.Address.Province.Name myStrcture.City = tmpInfo.Address.City.Name myStrcture.District = tmpInfo.Address.District.Name }() <-isDone // 业务处理2 // 返回 myStrcture References
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |