Se stai usando WriteConcern.ACKNOWLEDGED (che penso sia anche SAFE ) non è necessario inquinare il codice con il controllo degli errori.
Per ACKNOWLEDGED , il driver emetterà automaticamente un getLastError comando automaticamente e solleva un'eccezione se qualcosa è andato storto, ad esempio violazione dell'indice duplicato.
A partire dalla v2.10 del driver Java, il problema di scrittura predefinito è ACKNOWLEDGED
MODIFICA
Non dovresti farlo, ma in ogni caso:
Il insert il metodo restituisce infatti WriteResult . Se è getError() è null , è tutto OK, altrimenti restituisce qualcosa come E11000 duplicate key error index:... . Affinché funzioni, dovrai utilizzare WriteConcern.UNACKNOWLEDGED