大家好,我是煎鱼。在比较一段长的时间里,Go 的错误处理已经没有什么特别的进展和新改进了。看着已经到了瓶颈期。今天在 GitHub 上学习时,看到 Go 社区里有人提了个错误处理的优化提案《proposal: Go 2: Error-Handling Paradigm with !err Grammar Sugar》,也是引入新的语法来解决该问题。大家一起来看看,也集思广益一下。原提案作者的目的是新增一个 listen 关键字和配合管道符等语法来实现新的错误处理。原本的 Go1 代码,我们在处理错误时需要使用 if err != nil。如下代码:func copy(src, dst string) (int64, error) {
r, err := os.Open("input.txt")
if err != nil {
return 0, err
}
defer r.Close()
w, err := os.Create("output.txt")
if err != nil {
return 0, err
}
defer w.Close()
if _, err = io.Copy(w, r); err != nil {
return 0, e
...
继续阅读
(66)