我正在开发使用MongoDB的应用程序,和我的领域之一必须是唯一的。此字段由基于DB另一个值应用计算。如果我运行的应用程序的多个实例,但是,我能想象的应用计算相同的值。
在这种情况下,我想捕获异常,重新计算的值,然后再试一次。不幸的是,引发的异常似乎是一个简单的MongoWriteException。在我看来,只有这样,我便知道它是由于重复的关键问题是基于异常消息,但分析和利用信息的真正感觉不对。是否还有其他选择吗?
您可以检查错误的ErrorCategory的MongoWriteException内,确认使用getCategory()
复制的钥匙是由于:
catch(MongoWriteException ex) {
if(ex.getError().getCategory() == ErrorCategory.DUPLICATE_KEY) {
//handle duplicate key error
} else {
//do something else...
}
}