什么是正确的golang方式来做到这一点:
发布时间:2020-12-16 19:03:39 所属栏目:大数据 来源:网络整理
导读:这看起来有点愚蠢,肯定有更好的方法吗? err = SendMessageAndWait(db,"this is a test")if err != nil { fmt.Println("Error sending message",err) return}err = DoSomething(db,err) return}err = CheckSomething(db,"this is another test")if err != ni
这看起来有点愚蠢,肯定有更好的方法吗?
err = SendMessageAndWait(db,"this is a test") if err != nil { fmt.Println("Error sending message",err) return } err = DoSomething(db,err) return } err = CheckSomething(db,"this is another test") if err != nil { fmt.Println("Error sending message",err) return } err = SendMessageAndWait(db,"this is a third test") if err != nil { fmt.Println("Error sending message",err) return } ... x10 ...
可悲的是,这就是Go的方式,但是在某种程度上你可以让它更清洁:
func isError(err error,pre string) error { if err != nil { log.Printf("%v: %v",pre,err) } return err } func isErrorBool(err error,pre string) (b bool) { if err != nil { log.Printf("%v: %v",err) b = true } return } func checkSomething() error { return nil } func main() { if err := isError(checkSomething(),"something failed"); err != nil { return /* err */ } //if you don't want to return the error,just check it and die. if isErrorBool(checkSomething(),"something else failed") { return } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |