我正在尝试使用 mgo 将 objectid 字符串转换为 bson ObjectId 格式,
errCheck := d.C("col").FindId(bson.ObjectIdHex(obid[0])).One(&Result)
我知道为什么,但是如果我给出错误/无效的输入字符串,我的应用程序就会出现运行时错误
我该如何预防?谢谢
最佳答案
bson.ObjectIdHex()
记录如果你传递一个无效的对象 ID 它将 panic :
ObjectIdHex returns an ObjectId from the provided hex representation. Calling this function with an invalid hex representation will cause a runtime panic. See the IsObjectIdHex function.
如果你想避免这种情况,首先使用 bson.IsObjectIdHex()
检查你的输入字符串,并且仅在您的输入有效时才继续调用 bson.ObjectIdHex()
:
if bson.IsObjectIdHex(obid[0]) {
// It's valid, calling bson.ObjectIdHex() will not panic...
}
关于mongodb - 防止 bson.ObjectIdHex 中的运行时 panic ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53701764/