Prefacio
Hay muchos tipos de errores que pueden ocurrir en las aplicaciones Node.js. Por ejemplo: cuando se produce un error de sintaxis o un error de tiempo de ejecución, se activará un error de JavaScript; Al intentar acceder a un archivo que no existe o no se accede, se activará un error del sistema; Además de los errores de JavaScript y los errores de error del sistema, los usuarios también pueden personalizar los errores.
1. Clasificación errónea
Node.js es una plataforma de tiempo de ejecución de JavaScript, y sus errores de aplicación son una instancia Error o Error .
En las aplicaciones Node.js, hay cuatro posibles errores:
1. Errores estándar de JavaScript, como:
<EvalError> : lanzado cuando las llamadas eval() fallan
<SyntaxError> : lanzado cuando se usa sintaxis ilegal de JavaScript
<RangeError> : lanzado cuando un valor no está dentro del rango especificado
<ReferenceError> : lanzado cuando se usa una variable indefinida
<TypeError> : al pasar un parámetro de tipo de error
<URIError> : lanzado cuando una función de URI global se usa incorrectamente
2. Error del sistema. Este tipo de error es activado por el sistema subyacente, como tratar de abrir un archivo inexistente, intentar enviar datos a través de un Soket cerrado, etc.
3. Errores personalizados, dichos errores son activados por el usuario en el código de aplicación.
4. Error de afirmación. Cuando el código viola la lógica legal, este tipo de error es activado por el módulo assert Node.js.
2. Errores de JavaScript y errores del sistema
2.1 Errores de JavaScript y errores personalizados
Los errores estándar de JavaScript son proporcionados por el lenguaje JavaScript, lo que indica errores de sintaxis o un uso incorrecto de API. Todos los errores son una instancia de Error , mientras que los errores estándar de JavaScript están construidos por el lenguaje en sí cuando ocurre un error.
Al personalizar los errores, use el constructor para crear una instancia:
> Lanzar un nuevo error ('Se produjo un error, este es el mensaje de error'); Error: se encontró un mensaje de error en Repl: 1: 7 en replserver.defaultEval (repl.js: 248: 27) en Bound (domain.js: 280: 14) en replserver.runBound [como eval eval. en emitone (event.js: 82: 20) en replserver.emit (events.js: 169: 7) en replserver.interface._online (readline.js: 210: 10) en replserver.interface._line (readline.js: 549: 8) en replserver.interface._ttywrite (readline.js: 826: 14) Como se indicó anteriormente, personalizamos un error y lanzamos el error usando la palabra clave de lanzamiento. En este objeto de error, incluye el message de error y la stack de información de pila de errores. Después de la captura de excepciones, se puede acceder a esta información a través de las siguientes dos propiedades:
1. error.message Message - Mensaje de error
2. error.stack .
Además de las propiedades de la instancia de error en sí, también puede personalizar algunas propiedades de error. Por ejemplo, personalice un estado de propiedad que represente el estado:
VAR ERROR = nuevo error ('La página que visitó no existe'); error.status = 404;2.2 Error del sistema
Los errores del sistema son una extensión de los objetos Error de error JavaScript, que representan errores operativos que los programas pueden manejar, y estos mensajes de error se generan a nivel del sistema. Además de los atributos en la instancia Error , la instancia de error del sistema también incluye los siguientes atributos:
1. error.syscall : una cadena que representa la información de llamadas del sistema fallido
2. error.errno : un código de error entero
3. error.code : representa una cadena de error, generalmente comenzando con la letra mayúscula E
3. Captura de excepción
Node.js adopta la base de programación asincrónica y basada en eventos, lo que significa que try / catch no puede atrapar errores que ocurren al procesar de manera asincrónica. Para este caso, podemos usar las siguientes dos formas de atrapar o pasar el error:
Captura de excepción en la función de devolución de llamada node.js
Node.js tiene muchas API asincrónicas, que posteriormente se procesan a través de la devolución de llamada de la función de devolución de llamada. Si se produce un error, generalmente se incluirá un objeto Error en el primer parámetro de la función callback ; Si no se produce ningún error, el primer parámetro será null . como:
const fs = require ('fs'); fs.ReadFile ('un archivo no existente', (err, data) => {if (err) {console.error ('lectura de archivo de archivo', err); return;} // otro procesamiento});Manejo de errores basado en eventos
Si el objeto es un EventEmitter , el error se puede capturar y manejar a través del的'error' objeto:
const net = require ('net'); const conexe = net.connect ('localhost'); // Agregue un controlador de eventos 'Error' a la transmisión: Connection.on ('Error', (err) => {// Si el servidor se restablece por el servidor o no puede conectarse al servidor especificado // u otros errores de conexión, el error se pasará aquí a Console.error (err);}); Conexión. CONEXIÓN (Process.Tout);Resumir
Lo anterior es un resumen de algunos tipos de error en Node.js. Si puede comprender los tipos de error en Node.js, puede ayudarnos a manejar mejor los errores y las capturas de excepción. Espero que el contenido de este artículo sea útil para todos.