首页 > 后端开发 > Golang > golang错误抛出的方法

golang错误抛出的方法

发布: 2020-01-14 16:13:53
原创
4104 人浏览过

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

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

error是个interface:

type error interface {
    Error() string
}
登录后复制

如何创建error:

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

// example 2
if 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教程栏目。

以上是golang错误抛出的方法的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
golang web mvc 框架该怎么选
来自于 1970-01-01 08:00:00
0
0
0
使用 golang 还有必要使用 nginx 么?
来自于 1970-01-01 08:00:00
0
0
0
golang - mac配置gocode + vim自动补齐
来自于 1970-01-01 08:00:00
0
0
0
golang - vim的插件写go
来自于 1970-01-01 08:00:00
0
0
0
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板