[zeromicro/go-zero]建议 MustNewClient 初始化时连不上时不要用log.Fatal(err)

2024-02-18 676 views
4

`func MustNewClient(c RpcClientConf, options ...ClientOption) Client { cli, err := NewClient(c, options...) if err != nil { // log.Fatal(err) //这里建议不要使用直接退出程序 改用panic panic(err) }

return cli

}` 采用panic抛出错误,我们可以在相应业务再去初始化一些不常用的RPC服务时,如果RPC未能连接我们能正常获取到异常并做相应的处理事件。如果采用了log.Fatal()的话。API则会直接退出了。导致API服务无法再进行服务。 panic和log.Fatal都能在启动时判断初始化并停止。但是用了panic兼容后续的连接异常错误。

回答

3

这个需求那你可以直接调用NewClient方法吧?

8

名字都写了,MustNewClient...比NewClient多了一个Must

4

没有错 就是那个地方 err 直接退出了。那里采用panic的话比较好。这样在logic业务处理的时候可以去初始化RPC而不会直接退出API

8

也可以。只是用NEWClient自己还要封装多一次而以。

1

为了统一,还是维持原来的log.Fatal哈