千家信息网

Go 语言的错误处理有哪些

发表于:2025-01-25 作者:千家信息网编辑
千家信息网最后更新 2025年01月25日,本篇文章为大家展示了Go 语言的错误处理有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。学习目标掌握错误处理掌握自定义错误处理掌握defer关键字的使用错
千家信息网最后更新 2025年01月25日Go 语言的错误处理有哪些

本篇文章为大家展示了Go 语言的错误处理有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

学习目标

掌握错误处理

掌握自定义错误处理

掌握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  }
自定义error类型
defer关键字
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语句将先被执行。

painc与recover

panic用于不可以恢复的错误

panic退出前会执行defer指定的内容

错误恢复

defer func() {    if err :=recover();err != nil {     //恢复错误        }}()

os.Exit 退出

os.Exit直接终止程序不会调用defer指定的函数

os.Exit退出时不会输出当前用调用栈信息

上述内容就是Go 语言的错误处理有哪些,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

0