一、Go的内建类型error

error类型其实是一个接口类型,也是GO语言的内建类型;

在这个接口类型的声明中只包含了一个方法Error;

Error方法不接受任何参数,但是会返回一个string类型的结果。

errors.New(string) error
fmt.Errorf
fmt.Sprintferrors.New

使用error的案例:

二、怎么判断一个错误值具体代表那一类错误

  • 对于类型在已知范围内的一系列错误,一般使用类型断言表达式或类型switch语句来判断;
  • 对于已有相应变量且类型相同的一系列错误,一般直接使用判等操作来判断;
  • 对于没有相应变量且类型未知的一系列错误值,只能使用其错误信息的字符串表示形式来判断;

知道错误类型的所属范围

知道错误变量是哪几个值

三、错误值体系的两种方法

立体的-错误类型体系

用类型建立起树形结构的错误体系,用统一字段建立起可追根溯源的链式错误关系。

  • 将error作为嵌入接口。
  • 使用名为Err、类型为error接口类型的字段,代表当前错误的潜在错误。错误类型的值之间的另外一种关系:链式关系。

扁平的-错误值列表

errors.New
errors.New

解决方案一:私有化变量,也就是说让首字母小写,然后编写公开的用于获取错误值以及用于判等错误值的函数。

syscall.Erron
您可能感兴趣的文章: