首页 > 其他分享 >golang之errors包

golang之errors包

时间:2023-06-17 10:07:01浏览次数:35  
标签:errors err fmt golang BaseErr error err2

errors包常用方法

func Unwrap(err error) error                 // 获得err包含下一层错误
func Is(err, target error) bool              // 判断err是否包含target
func As(err error, target interface{}) bool  // 判断err是否为target类型

 

 

 

自定义错误信息

errors.New("这是自定义错误")

# 使用fmt进行错误包装
fmt.Errorf("error: %w", err)

 

errors.Is()

作用:判断被包装过的error是否包含指定错误

var BaseErr = errors.New("base error")

func main() {
   err1 := fmt.Errorf("wrap base: %w", BaseErr)
   err2 := fmt.Errorf("wrap err1: %w", err1)
   println(err2 == BaseErr)
   
   if !errors.Is(err2, BaseErr) {  // err2错误 是否在BaseErr错误树中
      panic("err2 is not BaseErr")
   }
   println("err2 is BaseErr")
}

//输出:
//false
//err2 is BaseErr

 

errors.As()

作用:判断被包装过的error是否为指定类型

 



标签:errors,err,fmt,golang,BaseErr,error,err2
From: https://blog.51cto.com/u_11045899/6504539

相关文章

  • golang之jwt
    golang-jwt是go语言中用来生成和解析jwt的一个第三方库。本文中使用目前最新的v5版本。安装goget-ugithub.com/golang-jwt/jwt/v5 在代码中引用import"github.com/golang-jwt/jwt/v5" 结构体假设jwt原始的payload如下,username,exp为过期时间,nbf为生效时间,iat为签发时间。第一......
  • 如何调试golang程序
    在Golang中进行调试和性能分析是非常重要的,在开发过程中发现问题并及时修复可以极大地提高代码质量和效率。介绍两种常用的调试工具,dlv和pprof,以及如何使用它们进行代码调试和性能分析。一、dlv调试工具1.安装在使用dlv前需要先安装,可以通过以下命令进行安装:goget-ugithub.......
  • golang 语法糖
    golang语法糖在Go语言中,nums...是一种语法糖,用于将切片nums展开为一个个独立的参数。在函数调用中,如果你有一个切片nums,你可以使用nums...将切片展开为独立的元素,作为函数的参数传递。以下是一个示例说明nums...的使用:gofuncsum(nums...int)int{total:......
  • 镜像golang 标准库文档
    缘起:查golang文档时,访问https://pkg.go.dev/std网站有点慢,就想做个离线版的修改日期:2023-06-16mirrorstdlibwget-c-t3-r-l1-np-p-khttps://pkg.go.dev/stdstatic/frontend/*rename.css@*->.cssreplacetextbytextforeverhttps://pkg.go.dev.......
  • golang之数据验证validator
    https://blog.csdn.net/guyan0319/article/details/105918559/前言在web应用中经常会遇到数据验证问题,普通的验证方法比较繁琐,这里介绍一个使用比较多的包validator。原理将验证规则写在struct对字段tag里,再通过反射(reflect)获取struct的tag,实现数据验证。安装gogetgithub.co......
  • golang之context
    context用来解决goroutine之间退出通知、元数据传递的功能。 context使用起来非常方便。源码里对外提供了一个创建根节点context的函数:funcBackground()Context background是一个空的context,它不能被取消,没有值,也没有超时时间。有了根节点context,又提供了......
  • Golang的wire是什么
    Golang的wire是什么了解Golang的wire框架对于构建可维护和可扩展的应用程序至关重要在当今的技术世界中,谷歌的Go语言(Golang)已经成为了许多开发人员的首选语言。Go语言以其简洁性、高效性和并发性而闻名,因此在开发各种类型的应用程序时广受欢迎。随着Go语言的不断发展,出现了许多框......
  • golang之http请求库go-resty
     github: https://github.com/go-resty/resty go-resty特性#go-resty 有很多特性:发起GET,POST,PUT,DELETE,HEAD,PATCH,OPTIONS,etc.请求简单的链式书写自动解析JSON和XML类型的文档上传文件重试功能客户端测试功能RestyclientCustom RootCertif......
  • golang之errors包
    errors包常用方法funcUnwrap(errerror)error//获得err包含下一层错误funcIs(err,targeterror)bool//判断err是否包含targetfuncAs(errerror,targetinterface{})bool//判断err是否为target类型   自定义错误信息err......
  • Web.Config中customErrors的使用方法(mode=On|Off|RemoteOnly)
    https://cloud.tencent.com/developer/article/21038021)customErrors中的mode“On”始终显示自定义(友好的)信息。“Off”始终显示详细的ASP.NET错误信息。“RemoteOnly”只对不在本地Web服务器上运行的2)customErrors中的defaultRedirect使之指向自定义错误页的URL......