Pregunta

He decidido que hay algunos errores que no quiero que se dirijan al controlador de errores del navegador.Pero todavía quiero saber sobre ellos.En mi código real, tengo una función que almacena los errores en un elemento oculto y ajax los envía a una base de datos.A continuación se muestra una versión simplificada de mi bloque de prueba:

try
{
  newValueEvaled = eval(newValue);
}catch(err)
{
  alert("Error caught: Line " + err.lineNumber + ((err.columnNumber != undefined)?', Column:' + err.columnNumber:"") + '\n' + err.message);
}

También me gustaría el columnNumber.Actualmente nunca está allí, pero de alguna manera la consola de errores del navegador tiene acceso a él.¿Alguien puede decirme cómo puedo acceder a él también?

¿Fue útil?

Solución

Estoy casi seguro de que no es posible obtener el número de columna de error de JavaScript ejecutándose en la página.La consola Firebug / WebKit / IE tiene acceso a los objetos internos del navegador que brindan más información sobre la pila de llamadas que la disponible para el código que se ejecuta dentro de la página.

Otros consejos

Puede acceder a la línea de error y posiblemente a la columna utilizando una función de controlador de errores personalizada:

function dumpErrors(error, file, line, column)
{
    alert('Error: ' + error + ', occurred in file: ' + file + ', on line: ' + line + ', at column: ' + (column || 'unknown'));
}
onerror = dumpErrors;

La «línea» está disponible para todos los navegadores.Para la «columna», parece que está disponible en la última versión de Chrome (versión 30.0+), pero no en Firefox (versión 17, que se ejecuta en mi Linux).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top