当密钥不存在时,我得到一个 java.util.NoSuchElementException。
我有一个案例类:
case class Token(_id: ObjectId, token: String)
Run Code Online (Sandbox Code Playgroud)
尝试从ongodb读取数据:
private val tokenCodecProvider = Macros.createCodecProvider[Token]()
private val codecRegistry = fromRegistries( fromProviders(tokenCodecProvider), DEFAULT_CODEC_REGISTRY )
private val database = MongoClient().getDatabase("test").withCodecRegistry(codecRegistry)
val tokenTable: MongoCollection[Token] = database.getCollection("Token")
def test = tokenTable.find().subscribe(
(user: MobileDevice) => println(user),
(error: Throwable) => println(s"Query failed: ${error.getMessage}"),
() => println("Done")
Run Code Online (Sandbox Code Playgroud)
)
Mongodb中令牌为空时出现异常
java.util.NoSuchElementException: key not found: token
at scala.collection.MapLike$class.default(MapLike.scala:228)
at scala.collection.AbstractMap.default(Map.scala:59)
at scala.collection.MapLike$class.apply(MapLike.scala:141)
at scala.collection.AbstractMap.apply(Map.scala:59)
at com.testmongo.Mongo$$anon$1$TokenMacroCodec$3.getInstance(mongo.scala:15)
at com.testmongo.Mongo$$anon$1$TokenMacroCodec$3.getInstance(mongo.scala:15)
at org.mongodb.scala.bson.codecs.macrocodecs.MacroCodec$class.decode(MacroCodec.scala:102)
at com.testmongo.Mongo$$anon$1$TokenMacroCodec$3.decode(mongo.scala:15)
at com.mongodb.connection.ReplyMessage.<init>(ReplyMessage.java:57)
at com.mongodb.connection.QueryProtocol$QueryResultCallback.callCallback(QueryProtocol.java:535)
at com.mongodb.connection.ResponseCallback.onResult(ResponseCallback.java:48)
at …Run Code Online (Sandbox Code Playgroud)