
引入
我相信在你编写 Go 代码的时候,你肯定遇到过内置
error类型。Go 代码使用error来指示异常状态。例如,当你使用os.Open函数但 Go 无法打开文件时,err就会为非nil值。func Open(name string) (file *File, err error) 复制代码以下代码用于在
os.Open打开文件的错误捕捉。如果发生错误,它将调用log.Fatal以打印错误消息并停止程序的运行。f, err := os.Open("filename.ext") if err != nil { log.Fatal(err) } 复制代码
在编程语言领域,通常 异常(Exception) 这一术语所描述的是一种数据结构,该数据结构可以存储异常的相关信息。异常处理的常见的一种机制是移交控制权。引发 raise exception(某些语言中也称之为 throw exception)。异常抛出后,控制权会被移交至某处的接 catch,并执行处理。
如果我们不处理异常,则有可能会影响用户体验(比如说会让用户访问到本该不可访问到的信息,或让应用程序崩溃)。捕捉异常并处理异常是程序员们的家常便饭,当然,在此之后,我们大多会将异常信息上传至服务器以供后续分析。
Go 错误捕捉
Go 语言通过内置的错误接口提供了非常简单的错误处理机制。
error 类型是一个接口类型,这是它的定义:
type error interface {
    Error() string
}
复制代码我们可以在编码中通过实现 error 接口类型来生成错误信息。
函数通常在最后的返回值中返回错误信息。使用 errors.New 可返回一个错误信息:
func Sqrt(f float64) (float64, error) {
    if f < 0 {
        return 0, errors.New("math: square root of negative number")
    }
}
复制代码© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
    






















![[桜井宁宁]COS和泉纱雾超可爱写真福利集-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/4d3cf227a85d7e79f5d6b4efb6bde3e8.jpg)

![[桜井宁宁] 爆乳奶牛少女cos写真-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/d40483e126fcf567894e89c65eaca655.jpg)
