defer 误用

gihnius · 2013-12-28 16:22:09 · 4147 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2013-12-28 16:22:09 的主题,其中的信息可能已经有所发展或是发生改变。

看到越来越多的package 里面的代码都这样用 defer:

obj, _ := x.y()

defer obj.close()

或者

obj, err := x.y()

defer obj.close()

都不管 obj 是否 nil , 太不靠谱了!


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

4147 次点击  
加入收藏 微博
4 回复  |  直到 2013-12-30 13:30:45
polaris
polaris · #1 · 11年之前

确实,可能一般情况下问题不会出现,但一出现就是panic

lidashuang
lidashuang · #2 · 11年之前

所以才有recover啊

Hubery
Hubery · #3 · 11年之前

先判断err啊

polaris
polaris · #4 · 11年之前
lidashuanglidashuang #2 回复

所以才有recover啊

额,recover 不是让你干这事的。

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传