教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 golang error 包 使用 以及error类型原理

golang error 包 使用 以及error类型原理

发布时间:2021-12-12   编辑:jiaochengji.com
教程集为您提供golang error 包 使用 以及error类型原理等资源,欢迎您收藏本站,我们将为您提供最新的golang error 包 使用 以及error类型原理资源
<pre code_snippet_id="1951265" snippet_file_name="blog_20161027_1_6114744" name="code" class="plain">package main import ( "errors" "fmt" ) func f1(code int) (int, error) { if code == 1 { return -1, errors.New("msg test error") } return code, nil } type MsgError struct { Code int Msg string } func f2(code int) (int, error) { if code == 1 { return -1, &MsgError{code, "struct msg test error"} } return code, nil } //golang 内置error 为interface类型 /* 定义方式为 type error interface { Error() string } 可以在 内置包里面找到对应源码 GOROOT/src/builtin/builtin.go 具体怎么个情况 搞不懂。但是看了一下 对应的error package 里面的new 方法返回一个对应的 构造体 指针 并定义了一个Error 方法 猜测应该是 如果返回是error 类型 内部会 自动调用对应 数据类型的 Error 方法 等真正搞明白再来修改文章 */ func (msg *MsgError) Error() string { return fmt.Sprintf("%s", msg.Msg) } func main() { // for _, v := range []int{1, 2, 3, 4, 5, 6} { // if code, err := f1(v); err != nil { // fmt.Println(err) // } else { // fmt.Println("success:", code) // } // } for _, i := range []int{1, 2, 3} { if code, err := f2(i); err != nil { fmt.Println(exrr) } else { fmt.Println("success:", code) } } } </pre>

到此这篇关于“golang error 包 使用 以及error类型原理”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
golang error 包 使用 以及error类型原理
Go语言error类型详解
Go自定义error错误
Golang错误处理机制
Golang实践-error
为什么Go中有的自定义error会导致内存溢出
Golang 特殊类型
golang errgroup的用法及用处
Golang错误和异常处理的正确姿势
golang中接口赋值与方法集

上一篇:golang append数组 下一篇:golang 接口 参数
[关闭]
~ ~