重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本篇文章为大家展示了Go 语言的错误处理有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
成都创新互联成立10余年来,这条路我们正越走越好,积累了技术与客户资源,形成了良好的口碑。为客户提供成都做网站、成都网站设计、网站策划、网页设计、域名与空间、网络营销、VI设计、网站改版、漏洞修补等服务。网站是否美观、功能强大、用户体验好、性价比高、打开快等等,这些对于网站建设都非常重要,成都创新互联通过对建站技术性的掌握、对创意设计的研究为客户提供一站式互联网解决方案,携手广大客户,共同发展进步。
掌握错误处理
掌握自定义错误处理
掌握defer关键字的使用
GO没有异常处理机制
Go语言引入了一个关于错误处理的标准模式,即error接口,该接口的定义如下: type error interface {
Error() string
}
可以通过errors.New快速创建错误实例
errors.New("错误信息")
func Foo(param int)(n int, err error) { // ... } //调用时的代码建议按如下方式处理错误情况: n, err := Foo(0) if err != nil { // 错误处理 } else { // 使用返回值n }
func CopyFile(dst, src string) (w int64, err error) { srcFile, err := os.Open(src) if err != nil { return } defer srcFile.Close() dstFile, err := os.Create(dstName) if err != nil { return } defer dstFile.Close() return io.Copy(dstFile, srcFile) }
类似于Java中的finally
一个函数中可以存在多个defer语句
defer语句的调用是遵照 先进后出的原则,即后一个defer语句将先被执行。
panic用于不可以恢复的错误
panic退出前会执行defer指定的内容
错误恢复
defer func() { if err :=recover();err != nil { //恢复错误 } }()
os.Exit 退出
os.Exit直接终止程序不会调用defer指定的函数
os.Exit退出时不会输出当前用调用栈信息
上述内容就是Go 语言的错误处理有哪些,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。