捕捉三方包里的panic的正确姿势是什么
1. 运行环境
go version go1.18.1 darwin/amd64
2. 问题描述?
在使用某些三方包时,三方包里的某些方法会panic,会阻断自己程序的运行,由于go没有异常,正确捕捉三方包的panic姿势是什么?
比如三方包github.com/aliyun/aliyun-mns-go-sdk
封装方法如下:
func newClient(endpoint, access_id, secret string) (ali_mns.MNSClient, error) {
defer func() {
log.Fatalln(recover())
}()
return ali_mns.NewAliMNSClient(endpoint, access_id, secret), nil
}
由于NewAliMNSClient
会panic,我该怎么实现这个方法呢?无论如何,都会返回client或者一个error
推荐文章: