go语言中的错误处理与其他语言有些不同,通常使用 error 类型表示函数的结果,如果函数执行失败,则返回一个错误值。在go语言中,没有异常机制,所有的错误都必须返回并进行处理。而在处理错误时,经常需要将错误信息转换成字符串输出或者写日志。
转换 error 类型为字符串有两种方式,分别是使用 error 接口的 Error() 方法和使用 fmt 包的 Sprintf() 函数。
使用 error 接口的 Error() 方法
error 接口是一个规范,包含一个单一的方法 Error() string,实现这个接口的类型表示一个错误状态。我们可以使用这个方法获取错误的字符串表示。
示例代码:
package mainimport ( "errors" "fmt")func main() { err := errors.New("发生了一个错误") fmt.Println(err.Error())}
登录后复制
程序输出:
立即学习“go语言免费学习笔记(深入)”;
发生了一个错误
登录后复制登录后复制
这样就将 error 类型转换成了字符串类型。
使用 fmt.Sprintf() 函数
除了使用 error 接口的 Error() 方法转换错误,我们还可以使用 fmt 包中的 Sprintf() 函数将错误格式化成字符串输出。
示例代码:
package mainimport ( "errors" "fmt")func main() { err := errors.New("发生了一个错误") fmt.Println(fmt.Sprintf("%v", err))}
登录后复制
程序输出:
立即学习“go语言免费学习笔记(深入)”;
发生了一个错误
登录后复制登录后复制
可以看到,使用 fmt.Sprintf() 函数输出错误与使用 error 接口的 Error() 方法输出错误的内容是一样的。
将错误写入日志
除了输出错误信息,我们还可以将错误写入日志文件,这样便于后期排查问题。
示例代码:
package mainimport ( "errors" "log")func main() { err := errors.New("发生了一个错误") log.Println("错误信息:", err)}
登录后复制
程序输出:
立即学习“go语言免费学习笔记(深入)”;
2021/08/12 20:06:19 错误信息: 发生了一个错误
登录后复制
可以看到,使用 log 包的 Println() 函数将错误信息写入日志文件。
总结
在Go语言中,将 error 类型转换成字符串有两种方式,分别是使用 error 接口的 Error() 方法和使用 fmt 包的 Sprintf() 函数。同时,我们还可以将错误信息写入日志文件,方便排查问题。
以上就是golang err 转string的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2399778.html