English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico de JavaScript

Objeto de JavaScript

Función de JavaScript

HTML DOM de JS

BOM del navegador JS

Tutorial básico de AJAX

Manual de referencia de JavaScript

Manejo de errores de JavaScript

Puede ocurrir errores inesperados al ejecutar código JavaScript.

Los errores pueden ser errores de codificación escritos por el programador, errores causados por errores de entrada y otros eventos imprevistos.

Por lo tanto, para manejar errores, JavaScript proporciona4Palabras clave:

  • La sentencia try le permite probar si un bloque de código contiene errores

  • La sentencia catch le permite manejar errores

  • La sentencia throw le permite crear errores personalizados

  • La sentencia finally le permite ejecutar código después de intentar y capturar, sin importar el resultado

En este ejemplo, hemos escrito "alert" como "aaalert" para generar un error intencional:

try {
aaalert("Hello world");
}
document.getElementById("result").innerHTML = e.name + "<br>" + e.message;
}
Prueba vea‹/›

Cuando ocurre un error, JavaScript generalmente detiene su ejecución y crea un objeto con dos propiedadesObjeto Error: nombre y mensaje.

Sentencia try ... catch de JavaScript

La sentencia try le permite definir un bloque de código que se ejecutará y se realizará una prueba de errores.

Si ocurre un error en el bloque try, la sentencia catch le permite definir un bloque de código que se ejecutará.

Las sentencias try y catch de JavaScript aparecen en pares:

try {
  //try_statements-Sentencias a probar
}catch(err){
  //catch_statements-Sentencias para manejar errores
}

Sentencia throw de JavaScript

throw statement lanza una excepción definida por el usuario.

La declaración throw permite crear errores personalizados. Técnicamente, esto se llama "Lanzar una excepción ”。

Las excepciones pueden ser cadenas de JavaScript, números, valores booleanos o objetos:

  throw "Invalid";  // Generar una excepción con valor de cadena
  throw 32;   // Generar un valor32La excepción
  throw true;   // Generar una excepción con valor true

Si se utiliza throw junto con try y catch, se puede especificar el flujo del programa y generar mensajes de error personalizados.

En este ejemplo, si se pasan parámetros no numéricos a getRectArea(), se lanzará un error personalizado:

function getRectArea(width, height) {
   if (isNaN(width) || isNaN(height)) {
  throw "Parameter is not a number!";
   }
}
try {
   getRectArea(5, 'Z');
}
catch(err) {
   document.getElementById('para').innerHTML = err;
}
Prueba vea‹/›

Ejemplo de validación de entrada

En este ejemplo, si el valor es incorrecto, se lanza una excepción (err). La declaración catch captura la excepción (err) y muestra un mensaje de error personalizado:

var x = document.querySelector("input").value;
try {
   if(x == "") throw "is Empty";
   if(isNaN(x)) throw "Not a Number";
   if(x > 10);throw "too High";
   if(x < 5);throw "too Low";
}
catch(err) {
   document.getElementById("para").innerHTML = "Input " + err;
}
Prueba vea‹/›

Sentencia final de JavaScript

La declaración finally le permite ejecutar código después de try y catch, independientemente del resultado.

try {
   aaalert("Hello world");
}
catch(err) {
   document.getElementById("result").innerHTML = err;
}
finally {
   document.getElementById("result").innerHTML += "<h3>Finally statement executed</h3>";
}
Prueba vea‹/›

As instruções catch e finally são opcionais, mas você precisa usar uma delas (ou ambas), enquanto usa a instrução try:

try {
   aaalert("Hello world");
}
finally {
   document.getElementById("result").innerHTML = "Finally statement executed";
}
Prueba vea‹/›

Objeto de erro do JavaScript

O JavaScript possui um objeto Error integrado, que fornece informações de erro quando ocorre um erro.

O objeto Error fornece duas propriedades úteis: name e message.

Propriedades do objeto de erro

A tabela a seguir lista as propriedades do objeto Error:

PropriedadeDescrição
nomeDefinir ou retornar o nome do erro
mensagemDefinir ou retornar a mensagem de erro

Tipo de erro

A propriedade error name pode retornar sete valores diferentes:

TipoDescrição
EvalErrorRepresenta o erro relacionado à função global eval()
InternalErrorRepresenta o erro ocorrido ao causar um erro interno no motor JavaScript
RangeErrorRepresenta o erro ocorrido quando a variável ou parâmetro numérico está fora de seu intervalo válido
ReferenceErrorRepresenta o erro ocorrido ao cancelar a referência de uma referência inválida
SyntaxErrorRepresenta o erro ocorrido ao analisar código dentro do eval()
TypeErrorRepresenta o erro ocorrido quando uma variável ou parâmetro não é do tipo válido
URIErrorRepresenta o erro ocorrido ao passar parâmetros inválidos para encodeURI() ou decodeURI()

A próxima seção apresentará detalhes sobre cada um desses tipos de erro.

EvalError

Quando atravéseval()Quando ocorre um erro durante a execução da função, é lançado um EvalError.

No entanto, o JavaScript não lança mais este erro, mas mantém este objeto para compatibilidade com versões anteriores.

Versões mais recentes do JavaScript não lançam exceções EvalError. Use SyntaxError em vez disso.

RangeError

Quando usar números que excedem o intervalo permitido, será gerado um RangeError.

Por exemplo, criar um array com comprimento negativo lançará um RangeError:

try {
var arr = new Array(-1); // lança um erro de intervalo
}
document.getElementById("result").innerHTML = err.name + "<br>" + err.message;
}
Prueba vea‹/›

ReferenceError

Quando você tenta referenciar ou acessar uma variável ou objeto inexistente, geralmente é lançado um ReferenceError.

try {
var x == 5 + y; // Lanzar error de referencia
}
document.getElementById("result").innerHTML = err.name + "<br>" + err.message;
}
Prueba vea‹/›

SyntaxError

Si su código JavaScript tiene algún problema de sintaxis, se desencadenará un SyntaxError en tiempo de ejecución.

try {
eval("alert('Hello)");   // Falta ' lanzará un error
}
document.getElementById("result").innerHTML = err.name + "<br>" + err.message;
}
Prueba vea‹/›

TypeError

Al no ser el tipo de valor esperado, se lanzará un TypeError.

var num = 50;
try {
num.toUpperCase();   // No puede convertir un número a mayúsculas
}
document.getElementById("result").innerHTML = err.name + "<br>" + err.message;
}
Prueba vea‹/›

URIError

Al especificar un URI (Identificador de Recursos Uniformes) no válido, se desencadenará un URIError.

try {
decodeURI("%");   // No puede decodificar por URI el signo porcentaje
}
document.getElementById("result").innerHTML = err.name + "<br>" + err.message;
}
Prueba vea‹/›

Referencia completa de errores

Para obtener una referencia completa de propiedades y métodos, visite nuestraReferencia de error de JavaScript.

La parte de referencia contiene descripciones y ejemplos de todas las propiedades y tipos de Error.