登录
首页 >  Golang >  Go问答

防止 bson.ObjectIdHex 中的运行时恐慌

来源:Golang技术栈

时间:2023-03-21 13:08:27 125浏览 收藏

小伙伴们对Golang编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《防止 bson.ObjectIdHex 中的运行时恐慌》,就很适合你,本篇文章讲解的知识点主要包括golang。在之后的文章中也会多多分享相关知识点,希望对大家的知识积累有所帮助!

问题内容

我正在尝试使用mgo将objectid字符串转换为bson ObjectId格式,

errCheck := d.C("col").FindId(bson.ObjectIdHex(obid[0])).One(&Result)

我知道为什么,但是如果我输入错误/无效的输入字符串,我的应用程序会出现运行时恐慌

我怎么能防止呢?谢谢

正确答案

bson.ObjectIdHex()如果您传递无效的对象 ID,它将出现恐慌的文档:

ObjectIdHex 从提供的十六进制表示中返回一个 ObjectId。 使用无效的十六进制表示调用此函数将导致运行时恐慌。 请参阅 IsObjectIdHex 函数。

如果您想避免这种情况,请首先使用 检查您的输入字符串,并且仅在您的输入有效bson.IsObjectIdHex()时才继续调用:bson.ObjectIdHex()

if bson.IsObjectIdHex(obid[0]) {
    // It's valid, calling bson.ObjectIdHex() will not panic...
}

今天带大家了解了golang的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>