Go语言没有提供像Java、C#语言中的try...catch异常处理方式,而是通过函数返回值逐层往上抛。

Go标准包提供的错误处理功能:

error是个interface:

type error interface {    Error() string}

如何创建error:

// example 1func Sqrt(f float64) (float64, error) {    if f < 0 {        return 0, errors.New("math: square root of negative number")    }    // implementation}// example 2if f < 0 {    return 0, fmt.Errorf("math: square root of negative number %g", f)}

如何自定义error:

// errorString is a trivial implementation of error.type errorString struct {    s string}func (e *errorString) Error() string {    return e.s}

go语言中一般有三种错误处理策略:

1、返回和检查错误值:通过特定值表示成功和不同的错误,上层代码检查错误的值,来判断被调用func的执行状态

2、自定义错误类型:通过自定义的错误类型来表示特定的错误,上层代码通过类型断言判断错误的类型

3、隐藏内部细节的错误处理:假设上层代码不知道被调用函数返回的错误任何细节,直接再向上返回错误

error interface 的 Error 方法的输出,是给人看的,不是给机器看的。我们通常会把Error方法返回的字符串打印到日志中,或者显示在控制台上。永远不要通过判断Error方法返回的字符串是否包含特定字符串,来决定错误处理的方式。

更多golang知识请关注golang教程栏目。

更多相关文章

  1. golang怎么拼接字符串数组
  2. golang判断错误类型的方法
  3. golang怎么自定义错误
  4. golang如何判断字符串是否为空
  5. 常见的 Go 处理字符串的技巧
  6. go语言中一种常见的错误
  7. go语言中一些字符串操作介绍
  8. 用Go实现字符串的逆序
  9. 关于 Golang 字符串 格式化

随机推荐

  1. Android(安卓)ListView 和 BaseAdapter
  2. Android中的Handler机制
  3. Android开机LOGO
  4. Android控件开发之四----ListView(4)
  5. android binder机制之--(我是binder)
  6. Android上开发Android软件
  7. 为Android开发者定制的搜索引擎
  8. Android(安卓)NDK之二:创建NativeActivity
  9. Android Studio下载安装教程及开发环境搭
  10. Mtk Android(安卓)app 默认激活设备管理