La ley de Murphy dice que cualquier cosa puede salir mal al final saldrá mal. Esto se aplica demasiado bien en el programa de programación. Si crea una aplicación, es probable que cree errores y otros problemas. ¡Los errores en JavaScript son uno de los problemas comunes!
El éxito de un producto de software depende de qué tan bien estos creadores puedan resolver estos problemas antes de dañar a sus usuarios. Y Javascript, de todos los lenguajes de programación, es famoso por su diseño promedio de gestión de errores. Si crea una aplicación JavaScript, hay altas posibilidades de cometer errores con datos a la vez. Si no es así, puede reemplazar un operador indefinido con un operador igual o triple (===) con un operador doble igual (==).
Es humano solo cometer errores. Es por eso que le mostraremos todo lo que necesita saber sobre la gestión de errores en JavaScript. Este artículo lo guiará a través de los errores básicos en JavaScript y explicará los diferentes errores que puede cumplir. Luego aprenderá cómo identificar y solucionar estos errores. También hay algunos consejos para administrar efectivamente los errores en los entornos de producción. Sin otras extensiones, ¡comencemos!
¿Cuáles son los errores de JavaScript? Los errores de programación se refieren a situaciones que no permiten que un programa funcione normalmente. Puede suceder cuando un programa no sabe cómo manejar el embarazo en cuestión, como cuando se trata de abrir un archivo no existente o cuando alcanza un punto final en función de la web, mientras que no hay conectividad de red.
Estas situaciones empujan el programa a arrojar errores al usuario, diciendo que no sabe cómo proceder. El programa recopila tanta información sobre el error y luego informa que no puede continuar. La ley de Murphy dice que cualquier cosa puede salir mal al final saldrá mal. Esto se aplica demasiado bien en el mundo de JavaScript, prepárese con esta guía para hacer clic para twittear a los programadores inteligentes que intentan predecir y cubrir estos escenarios, para que el usuario no tenga que descubrir un error técnico como “404” de forma independiente. En cambio, muestra un mensaje mucho más fácil de entender: “La página no se puede encontrar”. Estos objetos contienen información extensa sobre el tipo de error, la declaración que causó el error y el dibujo cuando apareció el error. JavaScript también permite a los programadores crear errores personalizados para proporcionar información adicional al solucionar problemas. Las propiedades de un error ahora que la definición de un error de JavaScript es claro, es hora de lanzarnos en detalle. Los errores de JavaScript tienen ciertas propiedades estándar y personalizadas que ayudan a comprender la causa y los efectos del error. Por defecto, los errores de JavaScript contienen tres propiedades:
Mensaje: un valor de cadena con el mensaje de error
Nombre: El tipo de error que apareció (profundizaremos en esta sección en la siguiente sección)
Pila: siguiendo la pila del código ejecutado cuando se ha producido el error.
Además, los errores también pueden tener propiedades como Number, Linenumber, Nombre de archivo, etc., para describir mejor el error. Sin embargo, estas propiedades no son estándar y pueden o no estar presentes en cada error generado en su aplicación JavaScript. Comprender el seguimiento de la pila Un seguimiento de la pila es la lista de llamadas de métodos en las que se encontraba un evento, como una excepción o una advertencia. Esto es lo que es un ejemplo de pila seguido por una excepción: ejemplo de seguimiento de pila. Como puede ver, comience imprimiendo el nombre y el mensaje del error, seguido de una lista de métodos que se han llamado. Cada llamada de método indica la ubicación del código fuente y la línea a la que se invocó. Puede usar estos datos para navegar la base de código e identificar qué fragmento de código causa el error. Esta lista de métodos se organiza de forma apilada. Muestra dónde se lanzó la primera excepción y cómo fue propagada por las llamadas de método apiladas. La implementación de una captura para la excepción no permitirá que se propague a través de la pila y bloquee su programa. Sin embargo, es posible que desee dejar los errores fatales no pagados para bloquear intencionalmente el programa en algunos escenarios.
Errores frente a excepciones La mayoría de las personas generalmente consideran errores y excepciones como los mismos. Sin embargo, es esencial notar una diferencia fácil pero fundamental entre ellos. Una excepción es un objeto de error que se ha lanzado. Para comprender mejor esto, tomemos un ejemplo rápido. Así es como puede definir un error en JavaScript: const wrightTypeError = typeError (“tipo incorrecto encontrado, carácter esperado”) y así es como el objeto WrongypeRor se convierte en una excepción: tirar WernypeError, la mayoría de las personas tienden a usar la forma corta que define objetos de error Mientras los arroja: tire typeError (“tipo incorrecto encontrado, carácter esperado”) Esta es una práctica estándar. Sin embargo, esta es una de las razones por las cuales los desarrolladores tienden a mezclar excepciones y errores. Por lo tanto, conocer los elementos fundamentales es vital, incluso si usa estenografía para terminar su trabajo rápidamente. Tipos de errores en JavaScript Hay varios tipos de errores predefinidos en JavaScript. Se eligen y definen automáticamente por JavaScript de tiempo de ejecución cada vez que el programador no administra explícitamente los errores en la aplicación. Esta sección lo guiará a través de algunos de los tipos más comunes de errores en JavaScript y comprenderá cuándo y por qué aparecen.

RangeError A RanGageError se arroja cuando una variable se establece con un valor fuera del rango de valores legales. Por lo general, aparece cuando un valor se transmite como un argumento a una función, y el valor dado no está dentro de los parámetros de la función. A veces puede ser difícil remediar cuando se usa bibliotecas de tercera parte mal documentadas, porque necesita conocer los posibles valores para que los argumentos pasen al valor correcto. Algunos de los escenarios comunes en los que aparece RangeError son: el intento de crear una matriz de longitud ilegal a través del constructor de matrices.
Transmisión de valores incorrectos a métodos numéricos como toxponential (), toprecision (), tofixed () etc.
Transmisión de valores ilegales a funciones de cadena como Normalize ().
Referencador Un referidor ocurre cuando algo está mal con la referencia de una variable en su código que puede haber olvidado definir un valor para la variable antes de usarlo o puede intentar usar una variable inaccesible en su código. En cualquier caso, la transición de La búsqueda de la pila proporciona información extensa para encontrar y remediar la referencia variable que es defectuosa.
Algunas de las razones comunes por las cuales aparecen referencias de referencias son:
Cometiendo un error de impresión en un nombre variable.
Tratando de acceder a las variables bloqueadas fuera de su dominio.
Referencia a una variable global en una biblioteca externa (como $ de jQuey) antes de cargarse.
Error de sintaxis Estos errores son uno de los más simples de remediar, porque indican un error en la sintaxis del código. Debido a que JavaScript es un lenguaje de secuencias de comandos que se interpreta en lugar de compilarse, se lanzan cuando la aplicación realiza el script que contiene el error. En el caso de los idiomas compilados, tales errores se identifican durante la compilación. Por lo tanto, las bares de aplicación no se crean hasta que se remedian. Algunas de las razones comunes por las cuales pueden ocurrir sintaxerradores son:
Faltan las comas invertidas
Perdiendo los soportes de cierre
Alineación inadecuada de aparatos ortopédicos u otros caracteres
Es una buena práctica usar una herramienta de listado en su IDE para identificar dichos errores antes de llegar al navegador. El error de escritura de typeError es uno de los errores más comunes en las aplicaciones de JavaScript. Este error se crea cuando un cierto valor no demuestra ser de cierto tipo esperado. Algunos de los casos frecuentes cuando aparecen son:
Invocar objetos que no son métodos.
Intente acceder a las propiedades de los objetos nulos o indefinidos
Tratar una cadena como un número o viceversa
Hay muchas más posibilidades en las que puede aparecer un TipoError. Veremos algunos casos famosos más adelante y descubriremos cómo remediarlos. Error interno El tipo de internador se usa cuando se produce una excepción en el motor de rodadura de JavaScript. Puede indicar o no un problema con su código la mayor parte del tiempo, el internerador aparece solo en dos escenarios:
Cuando un parche o actualización de Runtime JavaScript tiene un error que genera excepciones (esto sucede muy raramente)
Cuando su código contiene entidades que son demasiado grandes para el motor JavaScript (por ejemplo, demasiados casos de conmutación, demasiado inicializadores de matriz, demasiada recursión), el enfoque más apropiado para resolver este error es identificar la causa por mensaje de error y reestructurar el La lógica de la aplicación, si es posible, para eliminar el aumento repentino de la carga de trabajo en el motor JavaScript. Urieroare urierorea ocurre cuando una función de gestión global, como decodeuricponent, se usa ilegalmente. Por lo general, indica que el parámetro transmitido a la llamada del método no estaba de acuerdo con los estándares y, por lo tanto, no fue analizado por el método correctamente. Diagnosticar estos errores suele ser fácil, porque solo tiene que examinar los argumentos de malformación. Evalteror Un evaluador aparece cuando aparece un error cuando aparece la función eval (). La función eval () se usa para ejecutar el código JavaScript almacenado en cadenas. Sin embargo, debido a que el uso de la función eval () está muy desanimado debido a los problemas de seguridad y las especificaciones actuales de ECMAScript ya no lanzan la clase Evalerror, este tipo de error existe simplemente para mantener la compatibilidad con el código de JavaScript heredado. Si trabaja en una versión anterior de JavaScript, puede tener este error.
En cualquier caso, es mejor investigar el código ejecutado en la llamada de la eval () para cualquier excepción. Creación de algunos tipos de errores personalizados Aunque JavaScript ofrece una lista adecuada de clases de error para cubrir la mayoría de los escenarios, siempre puede crear un nuevo tipo de error si la lista no cumple con sus requisitos. La base de esta flexibilidad es que JavaScript le permite lanzar cualquier cosa con su pedido. Entonces, desde un punto de vista técnico, estas declaraciones son completamente legales: lanzar 8 lanzar “un error ocurrido”, sin embargo, lanzar un tipo de datos primitivos no proporciona detalles sobre el error, como el tipo, el nombre o el seguimiento del acompañamiento. pila. Para remediar esto y estandarizar el proceso de tratar con errores, se ha proporcionado la clase de error. También se desaconseja a usar tipos de datos primitivos al lanzar excepciones. Puede extender la clase de error para crear su clase de error personalizada. Aquí hay un ejemplo básico de cómo puede hacer esto: la clase ValidIdorror extiende el error {Builder (Mensaje) {super (Mensaje); Este.
Nombre = “ValidasionError”; }} Y puede usarlo de la siguiente manera: lanzar validaciorRor (“Propiedad no encontrada: nombre”) y luego puede identificarlo usando la instancia de palabra clave: try {validateForm () // código que lanza un validaciorror} catch (e) { If (e instancia de valididionError) // haz algo más // hacer algo más} Top 10 Los errores más comunes en JavaScript Ahora que comprende los tipos habituales de errores y cómo crear los personalizados, es hora de ver algunos de los Los errores más frecuentes que enfrentará al escribir el código JavaScript. 1. RangeError no a este error aparece en Google Chrome en algunos escenarios diferentes. En primer lugar, puede suceder si llama a una función recursiva y no termina. Puede verificar esto solo en la consola para los desarrolladores de Chrome: Ejemplo RangeError con una llamada de función recursiva. Entonces, para resolver tal error, asegúrese de definir correctamente los casos de borde de su función recursiva. Otra razón por la cual se produce este error es si ha pasado un valor que está fuera del rango de parámetros de una función. Aquí hay un ejemplo:
Ejemplo de RangeError con toxponential Llame (). El mensaje de error generalmente indicará qué está mal con su código una vez que realice los cambios, se resolverán.
Salga de la llamada de la función toxponencial (). 2. TypeError no abierto: no puede establecer la propiedad Este error aparece cuando establece una propiedad en una referencia indefinida. Puede reproducir el problema con este código: Var List List.count = 0 Aquí está el resultado que recibirá:
Ejemplo de typeError. Para remediar este error, inicialice la referencia con un valor antes de acceder a sus propiedades. Así es como se ve cuando se repara: cómo se remedia typeError. 3. Error sin tipo de tipo: la propiedad no se puede leer, este es uno de los errores más comunes en JavaScript. Este error ocurre cuando intenta leer una propiedad o llamar a una función en un objeto indefinido. Puede reproducirlo muy fácilmente ejecutando el siguiente código en una consola para desarrolladores de Chrome: función de función de cal () Aquí está el resultado:
Ejemplo de typeError con una función indefinida. Un objeto indefinido es una de las muchas causas posibles de este error. Otra causa prominente de este problema puede ser una inicialización inadecuada del estado durante el uso de la interfaz de uso. Aquí hay un ejemplo real de una aplicación reaccionar: import react, {useSte, useffect} de “reaccionar”; const tarjetsList = () => {const [estados, sets] = useState (); useFect (() => {setTimeOut (() => set ({elementos: [“tarjeta 1”, “tarjeta 2”), 2000);}, []); return ( {state.itams.map ((item) => (
{item}
))} ); }; Exportar la lista de tarjetas predeterminadas; La aplicación comienza con un contenedor de estado vacío y se proporciona con algunos elementos después de un retraso de 2 segundos. El retraso se implementa para imitar una llamada de red. Incluso si su red es súper rápida, continuará enfrentando un retraso menor debido a que el componente se lesionará al menos una vez. Si intenta ejecutar esta aplicación, recibirá el siguiente error:
Seguimiento de la pila TypeError en un navegador. Esto se debe al hecho de que, en el momento de la representación, el contenedor estatal es indefinido; Por lo tanto, no hay elementos de propiedad. Remedio Este error es fácil. Solo tiene que proporcionar un valor predeterminado inicial al contenedor de estado. // … const [estados, sets] = useState ({elementos: []}); // … Ahora, después de la demora establecida, su aplicación mostrará una salida similar: la salida del código. El remedio exacto de su código podría ser diferente, pero la esencia aquí es inicializar siempre sus variables antes de usarlas. 4. TypeError: “no afinado” no es un objeto Este error aparece en Safari cuando intenta acceder a las propiedades o llamar a un método en un objeto indefinido. Puede ejecutar el mismo código anterior para reproducir el error usted mismo.
Ejemplo de typeError con una función indefinida. La solución a este error también es la misma: asegúrese de haber inicializado correctamente las variables y no está indefinido cuando se accede a una propiedad o método. 5. TypeError: NULL no es un objeto Este es, nuevamente, similar al error anterior. Aparece en Safari y la única diferencia entre los dos errores es que se arroja cuando el objeto a cuya propiedad o método se accede es nulo en lugar de no definido. Puede reproducir esto ejecutando la siguiente pieza de código: lima function = null function.call () Aquí está el resultado que recibirá:

Ejemplo de typeError con función nula.Porque NULL es un valor explícitamente establecido en una variable y JavaScript no atribuye automáticamente.Este error solo puede ocurrir si intenta acceder a una variable que se ha establecido nulo.Por lo tanto, debe revisar su código y verificar si la lógica que escribió es correcta o no.6. TypeError: no puede leer la propiedad de “longitud” Este error aparece en Chrome cuando intenta leer la longitud de un objeto nulo o no afinado.La causa de este problema es similar a los problemas anteriores, pero ocurre con bastante frecuencia durante las listas de manejo;Por lo tanto, vale la pena una mención especial.Así es como puede reproducir el problema: ejemplo typeError con un objeto indefinido.Sin embargo, en las versiones más nuevas de Chrome, este error se informa como TipoError no captado: no se puede leer las propiedades de indefinido.Así es como se ve ahora:

Ejemplo de typeError con un objeto indefinido en versiones cromadas más nuevas. El remedio, nuevamente, es asegurarse de que el objeto cuya longitud está tratando de acceder existe y no está configurada en NULL. 7. TypeError: “Undefined” no es una función que este error aparece cuando intenta invocar un método que no existe en su script o lo hace, pero no se puede mencionar en el contexto de la llamada. Este error generalmente ocurre en Google Chrome y puede resolverlo verificando la línea de código que arroja el error. Si encuentra un error de impresión, corregirlo y verificar para resolver el problema. Si ha utilizado la clave de la clave para la autorreferencia en su código, este error puede ocurrir si esto no está vinculado correctamente a su contexto, considere el siguiente código: function showalert () {alert (“mensaje aquí”)} document.addeventListener ( “Haga clic”, () => {this.showalert ();}) Si ejecuta el código anterior, lanzará el error que discutimos. Ocurre porque la función anónima transmitida como oyente de eventos se ejecuta en el contexto del documento. En cambio, la función Showalert se define en el contexto de la ventana. Para resolver esto, debe transmitir la referencia adecuada a la función vinculándola con el enlace (document.AdDeventListener (método “Haga clic”

, this.showalert.bind (this)) 8. referenceError: el evento no está definido Este error aparece cuando intenta acceder a una referencia indefinida en el dominio. Esto generalmente sucede cuando gestiona los eventos, ya que a menudo le dan una referencia llamado evento en la llamada inversa. Este error puede ocurrir si olvida definir el argumento del evento en los parámetros de su función o escribirlo mal.

¿Quieres saber cómo aumentar nuestro tráfico por más del 1000%? ¡Únase a las más de 20,000 personas que reciben nuestro boletín semanal con los consejos de WordPress!

Suscríbase ahora

Es posible que este error no aparezca en Internet Explorer o Google Chrome (porque IE ofrece una variable de evento global y Chrome adjunta automáticamente la variable de evento al controlador), pero puede aparecer en Firefox. Por lo tanto, es aconsejable vigilar tan pequeños errores.

9. TypeError: Asignación a la variable constante Este es un error que aparece desde la falta de atención. Si intenta asignar un nuevo valor a una variable constante, recibirá dicho resultado:

Ejemplo de typeError con asignación constante de objetos. Aunque parece fácil de remediar ahora, imagine cientos de tales declaraciones variables y una de ellas definidas erróneamente que consiste en lugar de dejar. A diferencia de otros idiomas de secuencias de comandos, como PHP, existe una diferencia mínima entre el estilo de declarar constantes y variables en JavaScript. Por lo tanto, es aconsejable verificar sus declaraciones primero cuando experimenta este error. También puede satisfacer este error si olvida que la referencia referida es una constante y usarla como variable. Esto indica falta de atención o un defecto en la lógica de su aplicación. Asegúrese de verificar esto cuando intente solucionar este problema. 10. (Desconocido): Error de script Un error de script ocurre cuando un script de terceros envía un error a su navegador. Este error es seguido por (desconocido) porque el script de terceros pertenece a un dominio que no sea su aplicación, oculte otros detalles para evitar Fuga de información confidencial del guión de terceros. No puede resolver este error sin conocer los detalles completos. Esto es lo que puede hacer para obtener más información sobre el error: agregue el atributo de CrossOrigin a la etiqueta de script.

Establezca el origen de acceso de encabezado correcto-eLlow-Origin en el servidor que aloja el script.

[Opcional] Si no tiene acceso al servidor que aloja el script, puede considerar usar un proxy para enviar su solicitud al servidor y volver al cliente.

Una vez que pueda acceder a los detalles del error, puede configurarse para remediar el problema, que probablemente estará con la biblioteca de terceros o con la red. Cómo identificar y prevenir errores en JavaScript Si bien los errores discutidos anteriormente son los más comunes y frecuentes en JavaScript, encontrará, en base a algunos ejemplos nunca puede ser suficiente. Es vital comprender cómo detectar y prevenir cualquier tipo de error en una aplicación JavaScript durante su desarrollo. Así es como puede manejar errores en JavaScript. Los errores de lanzamiento hechos a mano y adjuntar la forma más fundamental de administrar los errores que se han lanzado manualmente o por el tiempo de ejecución es detectarlos. Como la mayoría de los otros idiomas, JavaScript proporciona un conjunto de palabras clave para administrar errores. Es esencial conocer a cada uno de ellos en profundidad antes de configurar los errores en la aplicación JavaScript. Lanza la primera y más básica palabra clave del conjunto es el lanzamiento. Como es obvio, el lanzamiento de palabras clave se usa para lanzar errores para crear manualmente excepciones durante la ejecución de JavaScript. Ya hemos discutido esto anteriormente en el artículo y aquí está la esencia del significado de esta palabra clave: puede lanzar cualquier cosa, incluidos números, cuerdas y objetos del oído.

Sin embargo, no es aconsejable lanzar tipos de datos primitivos, como cadenas y números, ya que no contienen información de solución de problemas.
Ejemplo: tire typeError (“Proporcione una cadena”)
Pruebe la palabra clave de prueba se usa para indicar que un bloque de código podría lanzar una excepción. Su sintaxis es: Try {// Error-Pro.PRone aquí} Es importante tener en cuenta que un bloque de captura siempre debe seguir el bloque de try para administrar los errores de manera efectiva. La palabra clave de captura de captura se usa para crear un bloque de captura. Este bloque de código es responsable de administrar los errores que detecta el bloque de try final. Aquí está su sintaxis: Catch (Exception) {// Code para manejar la excepción aquí} y así implementa los bloques de prueba y captura juntos: prueba {// código lógico empresarial} catch (excepción) {// código de manejo de errores} A diferencia de C ++ o Java, no puede agregar más bloques de captura a un bloque de try en JavaScript. Esto significa que no puede hacer esto: prueba {// Código lógico de negocios} Catch (Exception) {if (Exception instanceOf typeError) {// haz algo}} catch (excepción) {if (excepción instanciaf randeerror) {// haz algo} } En cambio, puede usar una instrucción IF … de lo contrario o un cambio de casas dentro del bloque de captura único para administrar todos los casos de error posibles. Se vería así:
Pruebe {// código de negocio lógico} capt (excepción) {if (excepcion instanciaf typeError) {// haz algo} más if (excepción instancia de randerror) {// haz algo más}} Finalmente, la palabra clave se usa para definir definir Un bloque de código que se roda después de un error ha sido tratado. Este bloque se ejecuta de acuerdo con los bloques de intento y captura. Además, el bloque final se ejecutará independientemente del resultado de los otros dos bloques. Esto significa que incluso si el bloque de captura no puede administrar todo el error o se lanza un error al bloque de captura, el intérprete ejecutará el código en el bloque final antes de que se bloquee el programa. Para ser considerado válido, el bloque TRY en JavaScript debe ser seguido por una captura o un bloque final. Sin ninguno de estos, el intérprete generará un SyntaxError. Por lo tanto, asegúrese de seguir los bloques de prueba con al menos cualquiera de ellos cuando administre los errores. Administre errores generales con el método de Onneror (). El método OnError () está disponible para todos los elementos HTML para administrar cualquier error que pueda ocurrir con ellos. Por ejemplo, si una etiqueta IMG no puede encontrar la imagen cuya URL se especifica, inicia su método de aceite para permitir que el usuario administre el error. Por lo general, proporcionaría otra URL de imagen en el apetito al que regresará la etiqueta IMG. Así es como puede hacer esto a través de JavaScript: consisten image = document.queryselector (“img”) image.onerror = (event) => {console.log (“Error ocurrió:”
+ evento)} Sin embargo, puede usar esta función para crear un mecanismo de gestión de errores globales para su aplicación. Así es como puede hacerlo: window.oneroror = (event) => {console.log (“Error ocurrió:” + Evento )} Con este manejador de eventos, puede deshacerse de más intentos … Atrapa los bloques que están en su código y puede centralizar la administración de su aplicación de manera similar a la administración de eventos. Puede adjuntar múltiples soluciones de gestión de ventanas para mantener el principio de responsabilidad única en los principios del diseño sólido. El artista pasará por todas las maniobras hasta que llegue la correcta. Transmite errores a través de llamadas inversas, mientras que las funciones simples y lineales permiten que los errores sigan siendo simples, las llamadas inversas pueden complicar el negocio. Considere la siguiente pieza de código: ¿Necesita una solución de alojamiento para brindarle una ventaja competitiva? Kinsta lo cubrió con una velocidad increíble, seguridad de última generación y escala automática. Revise nuestros planes
Const calcatedubeBube = (número, callback) => {setTimeOut (() => {const Cube = número * número de llamada (cubos)}, 1000)} constante constante = resultado => console.log (resultado) calcule (4, devolución de llamada ) La función anterior demuestra una condición asincrónica en la que una función tarda algún tiempo en procesar las operaciones y devuelve el resultado con una llamada inversa. Si intenta ingresar una cadena en lugar de 4 en la llamada de función, obtendrá NAN como resultado. Esto debe tratarse correctamente. Aquí está cómo: consistencia deCuteCube = (número, llamada) => {setTimeOut (() => {if (typeof number! Number llamado (cubos)}, 1000)} const callback = result => console.log (resultado) intente { CalculateCube (4, devolución de llamada)} Catch (e) {console.log (e)} Esto debería resolver el problema idealmente. Sin embargo, si intenta pasar una cadena a la llamada de llamada, recibirá esto:

Ejemplo de error con un argumento incorrecto.Incluso si ha implementado un bloque de captura de prueba mientras llama a la función, todavía dice que el error no se captura.El error se lanza después de que el bloque de captura se ha ejecutado debido al retraso del tiempo de espera.Esto puede suceder rápidamente en las llamadas de la red, donde se deslizan los retrasos inesperados.Debe cubrir tales casos mientras desarrolla su aplicación.Así es como puede administrar correctamente los errores en las llamadas inversas: consisting ofCute = (number, callback) => {setTimeOut (() => {if (typeof número! == “número”) {callback (new typeError “)) return} const cubos = número * número * número de devolución de llamada (null, cubo)}, 2000)} const llamadas = (error, resultado) => {if (error! == null) {console.log (error) return} console.log (resultado)} try {calculateCube (‘hey’, callback)} catch (e) {console.log (e)} Ahora, la salida a la consola será:

Ejemplo de typeError con argumento ilegal. Esto indica que el error se ha tratado correctamente. Gestión de promesas Errores La mayoría de las personas tienden a preferir promesas para administrar actividades asíncronas. Las promesas tienen otra ventaja: una promesa rechazada no termine su guión. Sin embargo, debe implementar un bloque de captura para administrar los errores de promesas. Para comprender mejor esto, para reescribir la función calculada () usando promesas: const demora = ms => new promety (res => setTimeOut (res, ms)); Const calcatateBube = async (number) => {if (typeof number! (4) .hen (r => console.log (r))} catch (e) {console.log (e)} tiempo de espera en el código anterior fue fue aislado en la función de la comprensión. Si intenta ingresar una cadena en lugar de 4, el resultado que obtenga será similar a él: Ejemplo de typeError con un argumento ilegal en la promesa. Nuevamente, esto se debe al hecho de que la promesa lanzó el error después de que todo se completó. La solución a este problema es simple. Simplemente agregue una llamada () a la cadena de promesa de la siguiente manera: calculateCube (“hey”) .hen (r => console.log (r)) .Catch (e => console.log (e) Ahora el resultado será :
Ejemplo de TypeError manejado con argumento ilegal. Puede ver lo fácil que es administrar los errores con promesas. Además, puede encadenar un bloque final () y la llamada de promesa para agregar el código que se ejecutará después de completar el procesamiento del proceso. Alternativamente, puede administrar los errores en promesas utilizando la técnica de prueba de prueba de prueba tradicional. Así es como se vería la llamada de la promesa en este caso: intente {Let result = Await CalcateCbe (“Hey”) Console.log (resultado)} Catch (E) {Console.log (e)} final.log (‘final Executd “)} Sin embargo, funciona solo en una función asíncrona. Por lo tanto, la forma más preferida de administrar los errores en promesas es encadenar y, finalmente, llamar promesas. Throw/Catch vs onError () vs Callbacks vs promesas: ¿Cuál es el mejor? Con cuatro métodos disponibles, debe saber cómo elegir el más apropiado en cualquier caso de uso. Así es como puede decidir: tirar/atraparlo usará este método de la mayoría de las veces. Asegúrese de implementar Condiciones para todos los errores posibles en su bloque de captura y no olvide incluir un bloque final si necesita ejecutar algunas rutinas de limpieza de memoria después del bloque de pruebas. están en un ASTF Es una situación, es posible que desee administrar los errores por el método de gestión global o promesa. Cuando decida entre bloques asíncronos de prueba/captura y prometa ‘
S Catch (), es aconsejable ir con los bloques asíncronos Try/Catch, ya que harán que su código lineal y fácil de solucionar. ONEROROR () Es mejor usar el método OnError () cuando sabe que su aplicación debe manejar muchos errores y que pueden estar bien dispersos por toda la base del código. El método OnError le permite administrar errores como si solo otro evento administrado por su aplicación. Puede definir más errores y adjuntarlos a la ventana de su aplicación. Sin embargo, también debe recordar que el método OnError () puede ser innecesario para configurar en proyectos más pequeños, con un área de error más pequeña. Si está seguro de que su aplicación no generará demasiados errores, el método tradicional de lanzar/agarrar será mejor para usted. Sin embargo, si elige entre estos dos antes de escribir su código, sería mejor ir con promesas. Esto se debe al hecho de que las promesas tienen una construcción construida para encadenar una captura () y final () para administrar los errores fácilmente. Este método es más fácil y limpio que definir argumentos adicionales/reutilizar argumentos existentes para manejar errores. Realice un seguimiento de los cambios con los repositorios GIT que muchos offen surgen debido a los errores manuales en la base de código. Mientras desarrolla o depurará su código, puede terminar haciendo cambios innecesarios que pueden hacer que aparezcan nuevos errores en su base de código. Las pruebas automatizadas son una excelente manera de mantener su código para verificar después del cambio.
Sin embargo, solo puede decirte si algo es WRG. Si no toma copias de seguridad frecuentes de su código, terminará perdiendo el tiempo para corregir una función de script que funciona bien. Aquí es donde Git juega su papel. Con una estrategia de propamio, puede usar su historial Git como sistema de respaldo para ver su código a medida que evolucionó a través del desarrollo. Puede hacer su navegación a través de su compromiso anterior y descubrir que la versión de la función funciona bien antes, pero arrojando errores después de un cambio no relacionado. Luego puede restaurar el código anterior o comparar las dos versiones para determinar qué salió mal. Las herramientas modernas de desarrollo web como GitHub Desktop o Gitkraken lo ayudan a visualizar los cambios uno al lado del otro y descubrir los errores rápidamente. El hábito que puede ayudarlo a cometer menos errores es ejecutar revisiones de código cuando realice el signo de su código. Si está trabajando en un equipo, puede crear una solicitud de extracción y hacer que un miembro del equipo lo revise a fondo. Esto lo ayudará a usar un segundo par de ojos para detectar cualquier error que pueda haber pasado por usted. Las mejores prácticas para manejar errores en JavaScript Los métodos previstos anteriormente tienen adecuados para ayudarlo a diseñar un enfoque de manejo robusto para su próximo JavaScript. Sin embargo, sería mejor tener algunas cosas en mente al implementarlas para obtener lo mejor de su prueba de error. Aquí tiene algunos consejos para ayudarlo. 1. Use errores personalizados al manejar las excepciones operativas, introdujimos errores de custome temprano en esta guía para darle una idea de cómo personalizar el manejo de errores a su aplicación de casas únicas.
Es aconsejable usar errores personalizados siempre que sea posible en lugar de la clase de error genérico, ya que proporciona más información contextual al entorno de llamadas sobre el error. Además de eso, los errores personalizados le permiten moderar cómo se muestra un error en el entorno de llamadas. Esto significa que puede elegir ocultar detalles específicos o mostrar información adicional sobre el error cuando lo desee. Puede llegar tan lejos como para formatear los detentos de Eror de acuerdo con sus necesidades. Esto le brinda un mejor control sobre cómo se interpreta y maneja el error. 2. No se trague ninguna excepción, incluso los desarrolladores más senior Comet cometen un error de novato, consumiendo niveles de excepciones en su código. Es posible que consulte situaciones en las que tiene un código que es opcional para ejecutar. Si funciona, genial; Si es así, no tiene que hacer nada al respecto. En estas casas, es relacionado con este código en un bloque de prueba y adjuntar un bloque de captura vacío. Sin embargo, al hacer esto, dejará ese código abierto a causar cualquier tipo de error y obtener asombros. Esto puede volverse peligroso si tiene una gran base de código y manejar instancias de tales construcciones de gestión de porrie. La mejor manera de manejar las excepciones se determina a nivel en el que todos ellos las hará y las criarán allí. Este nivel puede ser un controlador (en la aplicación de arquitectura MVC del año) o middleware (en una aplicación tradicional orientada al servidor). De esta manera, podrá saber si puede encontrar todos los errores que ocurren en su aplicación y elegir cómo resolverlos, incluso si eso significa no hacer nada sobre ellos.
3. Use una estrategia centralizada para registros y alertas de error registro Un error es parte integral del manejo. Aquellos que no desarrollan una estrategia centralizada para los errores de registro pueden perderse en el uso valioso de la aplicación ABO -Thanar. Los registros de eventos de una aplicación pueden ayudarlo a encontrar una fecha crucial sobre los errores y ayudar a depurarlos rápidamente. Si tiene un mecanismos de proyección configurados en su aplicación, puede saber en el oído de su aplicación antes de que requiera una gran sección de su base de usuarios. Es recomendable usar un registrador preconstruido o creado uno para satisfacer sus necesidades. Puede configurar este registrador para manejar la base de errores en sus niveles (advertencia, depuración, información, etc.), y algunos registradores incluso van a estar lejos de ser registros de servidores de registro remotos de inmediato. De esta manera, puede ver cómo funciona la lógica de su aplicación con los activos. 4. Notifique a los usuarios sobre los errores de manera apropiada, otro buen punto a Kep en mente, mientras que la definición de su mano es tener en cuenta. Todos los errores que intervienen con el funcionamiento normal de su aplicación deben para que el usuario visible para notificar que algo salió mal para que el usuario funcione. Si sabe que se solucionó rápidamente el error, sush rehumbe una operación o inicia sesión e inicia sesión, asegúrese de mencionarlo en la alerta para ayudar a la experiencia del usuario en tiempo real. En la casa de errores que no causan ninguna interferencia con la experiencia del usuario cotidiana, considera suprimir la alerta y registrar el error a un servidor remoto para resolverse. 5. Implemento de Middleware (Node.js) El entorno Node.js admite MiddleWares para agregar funcionalidades a las aplicaciones del servidor.
Puede usar esta función para crear un middleware de manejo de errores para su servidor. El beneficio más significativo de usar el middleware es que todos sus errores se manejan en el centro en un solo lugar. Puede elegir habilitar/deshabilitar esta configuración para fines de prueba fácilmente. Así es como puede crear un middleware básico: const LogErRor = err => {console.log (“Error:” + String (err))} const errrorogGermIDCleware = (err, req, res) => {loggeror (err) next ( err)} const returnRormiddleware = (err, req, res) => {res.status (err.statuscode, luego puede usar este middleware en su aplicación de la siguiente .use (ERRORLOGGERMIDLEWARE) App.use (returnRormiddleware) Ahora puede definir la lógica personalizada dentro del middleware a los errores de administración correctamente. Ya no tiene que preocuparse por la implementación de las construcciones de gestión de errores individuales en la base de código. 6. Reinicie la aplicación para administrar los errores del programador (node.js) Cuando las aplicaciones Node.js cumplan con los errores del programador, no necesariamente pueden lanzar una excepción e intentar cerrar la aplicación. Dichos errores pueden incluir problemas derivados de los errores del programador, como un alto consumo de CPU, hinchazón de memoria o fuga de memoria. La mejor manera de administrarlos es reiniciar la aplicación bloqueándola mediante el modo de nodo Cluster.
JS o una herramienta única como PM2. Esto puede garantizar que la aplicación no se atasque en la acción del usuario, presentando una experiencia terrible para el usuario. 7. Atrapa todas las excepciones no preparadas (Node.js) Nunca puede estar seguro de que ha cubierto todos los posibles errores que pueden ocurrir en su aplicación. Por lo tanto, es esencial implementar una estrategia de copia de seguridad para detectar todas las excepciones no preparadas en su aplicación. Así es como puede hacer esto: Process.on (‘UngauxtException’, error => {console.log (“Error:” String (Error (String (String (String (String (String (String (String (String (String (String (String (String (String (String (String (String (String (String (Error )) // Otro mecanismo de manejo}) También puede identificar si el error que ha aparecido es una excepción estándar o un error operativo personalizado. Según el resultado, puede dejar el proceso y reiniciarlo para evitar un comportamiento inesperado. 8. Atrapa todos los rechazos de promesas no tratadas (Node.js), ya que nunca podrá cubrir todas las excepciones posibles, hay altas posibilidades de perder todas las promesas posibles rechazos. Sin embargo, a diferencia de las excepciones, el rechazo de las promesas no genera errores. Por lo tanto, una promesa importante que ha sido rechazada puede aprobar como una advertencia y dejar su solicitud abierta a la posibilidad de tener un comportamiento inesperado. Por lo tanto, es crucial implementar un mecanismo de reserva para gestionar el rechazo de la promesa. Así es como puede hacer esto: Prometo ToegyCallback = error => {console.log (“Promise rechazar:” + string (error))} process.on (‘UnhandledRection’, devolución de llamada) Si crea una aplicación, hay posibilidades para crear errores y otros problemas en él.




Una guía definitiva para los errores que se administran en JavaScript
Tags Una guía definitiva para los errores que se administran en JavaScript
homefinance blog