Errors(package)

error 接口

  • go 语言跟其他编程语言不一样,其他编程语言的表示错误的方式很多种,可以通过返回值或者抛异常等方式来输出错误信息,例如 php 语言;但是 go 语言在错误处理方面,认为错误是预期处理,统一采用 error 类型的数据返回;而异常则认为是已知 bug 问题导致的,一个良好的程序是不应该发生 panic 异常;
  • 内建 error 类型是个接口类型,内建的意思是 error 是个预定义的错误抽象数据类型,是属于系统级的,不需要引入任何包或者其他操作就可以直接使用的,类似 int8 类型
  • 在 buildin 内建包里可以看到定义方式,包含单一方法 Error (),用来输出错误信息

error 接口源码
Errors(package)

errors 源码包

  1. 源码包文件列表

Errors(package)

  1. 主要是 errors.go 文件
  • 内部定义一个错误字符串的结构体 (errorString),结构体成员 s 存储错误信息;并在 * errorString 结构体指针上实现 error 接口

  • 提供一个 New 函数,通过传入字符串文本,返回 * errorString 结构体指针类型
    Errors(package)

  • 使用方式案例

      package main
    
      import (       
          "errors"       
          "fmt"
      )
    
      func main () { 
    
          //  创建一个错误具体类型       
          err := errors.New("内存溢出")   
    
          //  调用Error方法输出错误信息       
          fmt.Println(err.Error())
      }
go
本作品采用《CC 协议》,转载必须注明作者和本文链接