Obtener un rastro de excepciones lanzadas
Si bien JavaScript permite generar excepciones, obtener un seguimiento de la pila para una excepción personalizada puede ser un desafío . Este artículo explora varios métodos para recuperar seguimientos de pila específicamente para excepciones definidas por el usuario.
La propiedad de pila de un objeto Error proporciona una solución simple. Al crear un nuevo objeto Error y acceder a su propiedad de pila, puede capturar un seguimiento:
function stackTrace() {
var err = new Error();
return err.stack;
}
Este enfoque genera un seguimiento de pila similar a:
DBX.Utils.stackTrace@http://localhost:49573/assets/js/scripts.js:44 DBX.Console.Debug@http://localhost:49573/assets/js/scripts.js:9 .success@http://localhost:49573/:462 x.Callbacks/c@http://localhost:49573/assets/js/jquery-1.10.2.min.js:4 x.Callbacks/p.fireWith@http://localhost:49573/assets/js/jquery-1.10.2.min.js:4 k@http://localhost:49573/assets/js/jquery-1.10.2.min.js:6 .send/r@http://localhost:49573/assets/js/jquery-1.10.2.min.js:6
Este formato proporciona la función de llamada, la URL y funciones de llamada sucesivas.
Para los navegadores modernos, hay disponible un método más sencillo:
console.trace(); // (MDN Reference)
Esta función captura un seguimiento de la pila y lo muestra en la consola.
Se propuso una opción alternativa en el hilo original:
function stacktrace() {
function st2(f) {
return !f ? [] :
st2(f.caller).concat([f.toString().split('(')[0].substring(9) '(' f.arguments.join(',') ')']);
}
return st2(arguments.callee.caller);
}
Esta función atraviesa recursivamente la pila de llamadas y construye una cadena de seguimiento de la pila.
Al implementar estos métodos, los desarrolladores pueden obtener de manera efectiva seguimientos de la pila para excepciones personalizadas de JavaScript, lo que permite un manejo y depuración de errores más sólidos. .
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3