错误处理

目录

错误处理一直是Go语言中饱受诟病的一点,类似这样:

func OpenFile(path string) (*os.File, error) {
    if f, err := os.Open(path); err != nil {
        return nil, err
    } else {
        return f, nil
    }
}

当然,上面的例子可以写的更简单,为了展示异常处理,因此写成这样。

而Python中是这样写:

try:
    open(path)
except FileNotFoundError:
    pass

表面上看不出什么太大的区别,但实际上当调用层次深了之后,try...except... 的这种形式会比Go语言返回error的形式简单明了的多。



更多文章
  • Docker组件介绍(二):shim, docker-init和docker-proxy
  • YouCompleteMe ycmd server SHUTDOWN 和 pyenv的问题
  • Docker组件介绍(一):runc和containerd
  • Prometheus MySQL Exporter源码阅读与分析
  • MySQL性能指标
  • 使用Dropbox来备份服务器文件
  • 《计算机网络-系统方法》读书笔记
  • Y Combinator《如何创业》笔记
  • Go类型嵌套
  • etcd源码阅读与分析(五):mvcc
  • etcd源码阅读与分析(四):lease
  • 干了这碗叔本华牌毒鸡汤 --- 《人生的智慧》
  • Memory leak in net/http
  • etcd源码阅读与分析(三):wal
  • etcd源码阅读与分析(二):raft