go 的错误处理

2018-07-01  本文已影响0人  智勇双全的小六
  1. 用 defer 时,需要把 defer 代码放在最上方。
  2. recover 相当于 python 中的 except ,不要把任何错误都恢复掉。而是按照错误的类型,只恢复几类错误;recover 恢复的错误打印出来丢失堆栈信息,有时遇到严重的错误,直接崩掉然后再处理更好。
  3. 任何代码都需要经过充分的测试,go 的控制粒度比 python 细,这意味着犯错误的地方也比 python要多。
  4. 当代码的工作量很小,只在三五分钟内、只跑几千条数据时,一些潜在的bug并不会暴露出来,只有经历更长的时间、更大的量的考验,很多认为细枝末节的问题才会被放大。
  5. 有的时候,适合底层代码把错误处理掉(即recover),有的时候更适合底层代码不管错误,错误上报,在恰当的时机去处理错误。
上一篇下一篇

猜你喜欢

热点阅读