Estoy tratando de obtener el código de error cuando detecto un error, pero siempre está undefined .
¿Cómo obtengo el código de error?
Aquí hay dos ejemplos:
try { const f = 4; f = 9; } catch (err) { console.log(err.code); console.log(err.message); } try { d = 12; } catch (err) { console.log(err.code); console.log(err.message); }Consola:
undefined Assignment to constant variable. undefined d is not defined Trabajo en Node.js v14.17.1 .
Un error estándar de Javascript/Ecmascript no tiene propiedad code . Consulte los documentos de error para obtener más información.
El enlace que proporciona, de la documentación de errores de Node, se refiere solo a los errores personalizados generados por Node.js: los errores de Javascript generados por, por ejemplo, V8 se adherirán al estándar de Javascript al que se hace referencia en el primer enlace anterior.
Como comentaron los demás, intente console.log (err) para ver cómo se ve el objeto antes de intentar seleccionar propiedades de él.
Entendí mal la pregunta con mi respuesta original. Según tengo entendido, no hay una propiedad .code en el objeto de error devuelto dentro de un bloque try catch. Consulte esta documentación https://javascript.info/try-catch#error-object y pruebe error.name.