【探讨】关于golang的error处理问题

哈哈gogo 2020-09-15 09:41:05
你们都会层层向上返回吗,我是只在最底层处理,这样,就不用每层都写err!=nil了
比如
func aaa()(int,err){
}
func bbb()(int){
bbb,err:=aaa()
if err!=nil{////**do something*///}
}
func ccc()(int){
result:=bbb()
}
大佬们一起来探讨一下,这样做是否有问题
...全文
266 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
哈哈gogo 2020-09-16
  • 打赏
  • 举报
回复 1
就是最下层用的第三方库必须要error,上面的有值就处理,没有值就不处理,不需要error,所以我觉的就要在最下面处理error就行了,不用每层都处理error,这样不是更加的简化一些
qybao 2020-09-16
  • 打赏
  • 举报
回复
看你哪一层需要做error handle,如果不需要,可以用recover模拟try catch finally ,在函数的开头 defer func() { if err := recover(); err != nil { fmt.Println("Runtime Error:", err) } }()
哈哈gogo 2020-09-16
  • 打赏
  • 举报
回复
我是这么想的,一般情况,上面只需要处理有值或无值,error并不关心,所以我都是这样写的,不然,每层都要error,写太多的话,是有点烦的,
qybao 2020-09-16
  • 打赏
  • 举报
回复
引用 2 楼 golang人工智能框架 的回复:
就是最下层用的第三方库必须要error,上面的有值就处理,没有值就不处理,不需要error,所以我觉的就要在最下面处理error就行了,不用每层都处理error,这样不是更加的简化一些
这就看你的需求了,比如用户想在ccc自己做异常判断处理怎么办?所以没有一层不变的代码,只有不断改变的需求。当然,针对于确定的需求,那自然是怎么方便就怎么实现。

2,348

社区成员

发帖
与我相关
我的任务
社区描述
go语言学习与交流版
社区管理员
  • go语言社区
  • 俺叫西西弗斯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧