Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

140
Vistas
¿Cómo lanzar excepciones "expresivas" / amigables con la consola en JavaScript?

Noob de JavaScript aquí... Estoy explorando varias opciones para lanzar excepciones.

Lanzar una cadena/valor primitivo

Esto parece ser una mala práctica por varias razones (captura, stacktrace, ...)

Error uso

 throw new Error("bad times")

Este parece ser un enfoque común, pero no soy un gran admirador porque no puedo agregar información adicional fácilmente. no puedo por ejemplo hacer

 throw new Error("bad times", { reason: strangeObject })

Podría JSON.stringify la información adicional, pero me gusta cuando puedo expandir/contraer el objeto en la consola.

Por lo que puedo decir, no avanzaré más con excepciones personalizadas/subclases de error.

Lanzar { msg: "bad times", reason: strangeObject }

Esto me permite expandir/contraer strangeObject muy bien en la consola. Para que las excepciones a lo largo de mi aplicación sean consistentes, necesitaría repetir la parte msg: en todas partes, de lo cual no soy fanático.

Terminé optando por el último enfoque, solo para descubrir que ESLinter se queja de este enfoque:

Se esperaba que se lanzara un objeto de error no-throw-literal

Entonces, mi pregunta es básicamente : ¿Puedo usar Error (o subclases de Error personalizadas) de una manera amigable para la consola, es decir, admitir expandir/colapsar?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Me he conformado con una excepción personalizada y un controlador window.onerror :

 class MyAppError extends Error { constructor(msg, details) { super(msg) this.details = details } } window.onerror = function(message, source, lineno, colno, error) { if (error instanceof MyAppError) { console.error(message, error.details) return true } return false } function throwSomething() { throw new MyAppError("I made a mess", { someDetail: "a value", otherStuff: "another value" }); } console.log("Hello World"); throwSomething();

( JSFiddle )

El resultado se ve así en Firefox y Chrome, con lo que estoy bastante contento.

ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda