Om du använder WriteConcern.ACKNOWLEDGED (vilket jag tror också är SAFE ) behöver du inte förorena din kod med felkontroll.
För ACKNOWLEDGED , kommer drivrutinen automatiskt att utfärda en getLastError kommandot automatiskt och höja ett undantag om något gick fel, till exempel dubblettindexöverträdelse.
Från och med v2.10 av Java-drivrutinen är standardskrivproblemet ACKNOWLEDGED
REDIGERA
Du bör inte göra detta, men i alla fall:
insert metoden returnerar verkligen WriteResult . Om det är getError() är null , allt är OK, annars returnerar det något som E11000 duplicate key error index:... . För att detta ska fungera måste du använda WriteConcern.UNACKNOWLEDGED