纠结了, 第三方包返回不同 err , 要分别处理。

whispermemory · · 3215 次点击
whispermemory
一份代码不是变得越来越好,就是变得越来越差。
有几种不同的错误类型,要做分别处理。 后来我直接用 err.Error() 直接做字符串匹配了。不知到合适不合适。
#2
更多评论
polaris
社区,需要你我一同完善!
为啥要做分开处理?举个例子?
#1
polaris
社区,需要你我一同完善!
字符串匹配不太合适吧。标准库中的做法,一般是将不同错误类型定义为一个 error 接口的实例,然后判断错误是否是之前定义的。比如 package main import ( "fmt" "errors" ) var MyErr = errors.New("This is error") func main() { err := test() if err == MyErr { fmt.Println("my error raise") } } func test() error { return MyErr }
#3