Estoy trabajando en un módulo de autenticación respaldado por MongoDB para mi aplicación asp.net. La base de datos MongoDB tiene una colección de usuarios donde almaceno información de inicio de sesión: nombre de usuario, correo electrónico y contraseña. Tanto el nombre de usuario y correo electrónico están configurados para ser único:Maneras mejores de manejar las excepciones de MongoDB
users.ensureIndex({email:1}, {unique:1})
users.ensureIndex({uname:1}, {unique:1})
Ahora, si trato de insertar un registro con uname o correo electrónico existente, me sale una excepción de MongoDB:
Safemode detected an error: E11000 duplicate key error index:
authdb.users.$email_1 dup key: { : "[email protected]" }
(response: { "err" : "E11000 duplicate key error index: authdb.users.$email_1
dup key: { : \"[email protected]\" }", "code" : 11000, "n" : 0, "connectionId" : 9,
"ok" : 1.0 })
tengo que decir la usuario que el nombre de usuario o el correo electrónico que ingresaron ya existe, pero toda la excepción es solo una gota de texto, y para ver qué sucede debo adivinar si "$ email" o "$ uname" están en el mensaje de error . ¿Hay algún tipo de analizador para las excepciones de MongoDB que me ayudaría a detectar para qué es la excepción?
¿Es una captura de prueba considerada una buena práctica aquí? ¿Deberíamos evitar usar un inserto asíncrono si tenemos un try catch? – AdamMc331