Go 错误处理
提示
- 错误生成与处理: 在Go中,程序错误(例如整数除以零)会停止程序执行,因此需要有效的错误处理。
- 使用
New()
和Errorf()
函数处理错误:New()
用于创建自定义错误消息,而Errorf()
允许格式化错误消息。 - 自定义错误类型: 通过在结构体上实现
error
接口的Error()
方法,可以创建自定义错误类型,提供更具体的错误信息。
在编程中,我们的程序有时会运行不正常并产生错误。例如,
package main
import "fmt"
func main() {
for i := 0; i < 5; i++ {
result := 20 / i
fmt.Println(result)
}
}
运行这段代码时,我们会遇到一个叫做整数除以零的错误。
在第一次迭代中,i 的值为 0,因此代码 result := 20 / i
尝试用 0 去除一个数。
在这种状态下,程序停止执行,这就是所谓的Go错误。这里的 "integer divide by zero" 是编译器返回的错误信息。
注意: 我们在前一个例子中遇到的错误是内置错误。在 Go 语言中,我们也可以自己创建错误,以实现更高效的编程。
Golang 错误处理
当发生错误时,程序的执行会完全停止,并显示内置错误消息。在 Go 中,我们可以处理这些异常。因此,处理程序中的异常非常重要。
与其他编程语言不同,我们在 Go 中不使用 try/catch 来处理错误。我们可以使用以下方法来处理错误:
New()
函数Errof()
函数
1. 使用 New() 函数处理 Go 错误
在 Go 中,我们可以使用 New()
函数来处理错误。这个函数定义在 errors
包内,允许我们创建自己的错误信息。
看一个例子,
package main
// 导入 errors 包
import (
"errors"
"fmt"
)
func main() {
message := "Hello"
// 使用 New() 函数创建错误
myError := errors.New("WRONG MESSAGE")
if message != "Programiz" {
fmt.Println(myError)
}
}
输出
WRONG MESSAGE
在上面的例子中,我们使用 errors.New()
函数创建了一个错误。
myError := errors.New("WRONG MESSAGE")
这里,New()
函数内的 "WRONG MESSAGE" 是自定义错误信息。当 message 变量与给定的字符串 "PROGRAMIZ" 不匹配时,它会被打印出来。