我正在开发一个使用MongoDB的应用程序,并且我的字段之一必须是唯一的。该字段由应用程序根据数据库中的另一个值计算。但是,如果我正在运行该应用程序的多个实例,则可以想象这些应用程序在计算相同的值。
在这种情况下,我想捕获异常,重新计算该值,然后重试。不幸的是,引发的异常似乎是一个简单的MongoWriteException。在我看来,我唯一知道这是由于重复的密钥问题引起的,是基于异常消息的,但是解析和使用该消息确实感觉不对。还有其他选择吗?
答案 0 :(得分:1)
您可以使用getCategory()
检查ErrorCategory中错误的MongoWriteException并确认是由于重复的键引起的:
catch(MongoWriteException ex) {
if(ex.getError().getCategory() == ErrorCategory.DUPLICATE_KEY) {
//handle duplicate key error
} else {
//do something else...
}
}