我怎样才能进一步理解Go为什么会以错误的方式处理错误?

时间:2015-08-18 18:37:24

标签: go

我已经Google搜索了“Golang错误”,“Go error handling”,“Go errors”和“Go error verbose”以了解其他人对该主题的看法,并在线阅读一些教程。

我还观看了以下YouTube视频:https://www.youtube.com/watch?v=Ph4eYD7Bgek

但是我仍然无法理解为什么在我做完所有事情之后我必须添加这些行:

if err != nil {
    fmt.Println(err)
}

为什么这不会自动发生?我仍然无法理解为什么这种方式比尝试更好,赶上。我来自PHP背景,在PHP中,我几乎从未做过错误检查,每次出错都会自动记录,所以为什么我要在Go上手动执行此操作?有什么好处?我真的想“100%”学习这门语言,但是一遍又一遍地编写相同的代码感觉是错误的。这违背了我对编程的了解,不再重复自己。

我怎么能理解这一点?这是什么原因和好处?也许我会理解,如果有人带来一些情况的例子,为什么这种处理错误的方式是最好的方法,而不是尝试catch,这种方式比不检查更好,就像我在PHP中做的那样。

我已经在Go官方网站上看过了。以及其他各种在线教程,例如:

https://gobyexample.com/

Oreilly的视频教程。

Pluralsight的视频教程。

1 个答案:

答案 0 :(得分:1)

我希望这是一个评论,但链接太多了:

Blog post: Error handling and Go

Effective Go: Errors

SO Answer: Error returns

SO Question: Go — handling multiple errors elegantly?

SO Question: More terse error handling in Go

Blog post: Errors are values

Code Review Question: A minimal version control system

使用上下文返回“错误处理程序”函数的函数:

<div ng-repeat="s in book.stores">
   <span>{{s.name}}</span>
   <input type="text" ng-model="s.name" />
   <input type="numeric" ng-model="s.quantity" />
</div>

...列表继续,使用Google和SO搜索。