um. Categorizado
1. Erro de sintaxe
Também conhecido como erros de análise, ocorrem ao compilar em linguagens de programação tradicionais e ocorrem no JavaScript ao interpretar. Esses erros são causados diretamente por caracteres inesperados no código e, em seguida, não podem ser compilados/interpretados diretamente. Por exemplo, uma linha de código não possui o suporte de fechamento, resultando em um erro de sintaxe. Quando ocorre um erro de sintaxe, o código não pode ser executado. No JavaScript, apenas o código no mesmo encadeamento será afetado por erros de sintaxe. O código em outros threads e em outros arquivos referenciados externamente pode continuar a executar se não depende do código que contém o erro.
2. Erro de tempo de execução
Também conhecido como exceção (exceção, após compilar/intérprete). Nesse ponto, o problema não está na sintaxe do código, mas, em alguns casos, uma operação tentada a concluir é ilegal. por exemplo.
window.openmyfile ();
Como o método OpenMyfile () não existe, o navegador retornará uma exceção. As exceções afetam apenas o encadeamento que ocorre e outros threads JavaScript podem continuar a executar normalmente.
dois. Erros de manuseio
1. Função de manuseio de eventos OneError
É o primeiro mecanismo para ajudar o JavaScript a lidar com erros. Quando ocorre uma exceção na página, o evento de erro é disparado no objeto da janela. Por exemplo.
A cópia do código é a seguinte:
<html>
<head>
<title> Exemplo </ititure>
<script type = "text/javascript">
window.onerror = function () {
alerta ("ocorreu um erro!");
}
</script>
</head>
<corpo onload = "function1 ()">
</body>
</html>
No código acima, tentando chamar uma função inexistente enquanto a página é carregada, uma exceção será aumentada. Uma mensagem de erro de que "erro ocorreu" aparece. No entanto, a mensagem de erro do navegador também é exibida. Como esconder no navegador? Basta retornar um método verdadeiro.
A cópia do código é a seguinte:
<script type = "text/javascript">
window.onerror = function () {
alerta ("ocorreu um erro!");
retornar true;
}
</script>
1) Remova a mensagem de erro
O manipulador OnError fornece três tipos de informações para determinar a natureza exata do erro:
I) Mensagem de erro - Para um determinado erro, o navegador exibirá as mesmas informações;
ii) URL - no qual ocorreu um erro;
Número da linha - o número da linha em que o erro ocorreu no URL fornecido.
Veja o exemplo a seguir para os métodos de acesso:
A cópia do código é a seguinte:
<script type = "text/javascript">
window.onerror = função (smessage, surl, line) {
alerta ("ocorreu um erro!/n" + smessage + "/nurl:" + surl + "/nline número:" + line);
retornar true;
}
</script>
2) Erro de carregamento da imagem
O objeto da janela não é o único objeto que suporta a função de manuseio de eventos do OnError, também fornece suporte para objetos de imagem. Quando uma imagem não pode ser carregada com sucesso devido à inexistência do arquivo, o evento de erro é acionado na imagem. Vejamos um exemplo:
<img src = "amigo.jpg" oneerror = "alert ('ocorreu um erro ao carregar a imagem')"/>
O exemplo acima aloca diretamente a função de manipulador de eventos do OnError no HTML. Obviamente, você também pode alocar funções de processamento de eventos por meio de scripts. Antes de definir as características do SRC da imagem, você deve aguardar a página totalmente carregada. O código é o seguinte:
A cópia do código é a seguinte:
<html>
<head>
<title> Teste de erro de imagem </title>
<script type = "text/javascript">
função handleload () {
document.images [0] .ONERROR = function () {
alerta ("ocorreu um erro ao carregar a imagem!");
};
document.images [0] .src = "Amigo.jpg";
}
</script>
</head>
<corpo onload = "handleload ()">
<img/>
<Body>
</html>
Nota: Ao contrário da função do manipulador de eventos do OnError do objeto da janela, o evento OnError da imagem possui parâmetros de informação adicionais.
3) Lidar com erros de sintaxe
O ONERROR também pode lidar com erros de sintaxe. Mas uma coisa deve ser observada que o manipulador de eventos deve ser o primeiro código que aparece na página, porque se ocorrer um erro de sintaxe antes de definir o manipulador de eventos, o manipulador de eventos será inútil.
Nota: Os erros de sintaxe interromperão completamente a execução do código.
NOTA: O principal problema de usar o manipulador de eventos do OnError é que ele faz parte do nascimento, portanto, nenhum padrão pode controlar seu comportamento. Portanto, diferentes navegadores usam esse evento para lidar significativamente de erros. por exemplo. Quando ocorre um evento de erro no IE, o código normal continuará sendo executado, todas as variáveis e dados são retidos e podem ser acessados através da função OnError Event Handler. Em Mozilla, a execução normal do código terminará e todas as variáveis e dados antes que o erro ocorra sejam destruídos.
2. Tente… Catch declaração
A terceira edição do ECMPScript apresenta a declaração de tentativa… captura. Por exemplo.
A cópia do código é a seguinte:
tentar {
window.openfile1 ();
alerta ("Método OpenFile1 chamado com sucesso");
} catch (exceção) {
alerta ("exceção ocorreu!");
} finalmente {
Alert ("Tente ... Teste de término termina!");
}
Ao contrário do Java, o padrão ECMAScript pode ter apenas uma declaração de captura na declaração de tentativa ... Catch, porque o JavaScript é um idioma do tipo fraco e não pode especificar o tipo específico de exceção na cláusula de captura. Independentemente do tipo de erro, ele é tratado pela mesma declaração de captura. No entanto, a Mozilla expandiu -o e pode adicionar várias instruções de captura, que não é recomendável usar dessa maneira.
Finalmente, usado para incluir o código a ser executado, independentemente de ocorrer uma exceção, o que é útil para fechar links abertos e liberar recursos.
1) Tente aninhado… Catch declaração
Usado para lidar com problemas de erro nas cláusulas de captura, vamos dar uma olhada em um exemplo, o código é o seguinte:
A cópia do código é a seguinte:
tentar {
Eval ("A ++ B");
} catch (OException) {
alerta ("ocorreu um erro!");
tentar {
var aerror = nova matriz (10000000000000000000000000000000000000000000000000000000000000000000000000000000000);
} catch (exceção) {
alerta ("Ocorreu um erro na cláusula de captura!");
}
} finalmente{
Alerta ("Concluído")
}
2) Objeto de erro
Quando ocorre um erro, o JavaScript possui uma classe base de erro para lançar. Tem duas características:
i) nome - uma string representando o tipo errado
ii) Mensagem - mensagem de erro real.
O nome do objeto de erro corresponde à sua classe e pode ser um dos seguintes valores:
Avaliador: o erro ocorre na função Eval ();
RangeError: o valor numérico excede o intervalo que JavaScript pode representar;
ReferenceError: referência ilegal foi usada;
SyntaxError: Ocorreu um erro de sintaxe na chamada de função Eval (), e outros erros cada vez mais foram relatados pelo navegador e não puderam ser processados através da tentativa ... captura;
TypeError: o tipo de variável não é o que se espera que seja necessário;
Urierror: ocorreu um erro na função Encodeuri ou decodeuri.
3) Determine o tipo de erro
Os dois métodos a seguir podem ser usados para determinar o tipo de erro. O primeiro método é baseado no atributo Nome da exceção, como segue:
A cópia do código é a seguinte:
tentar {
Eval ("A ++ B");
} catch (OException) {
if (oexception.name = "syntaxError") {
alerta ("Ocorreu SyntaxError!");
} outro {
alerta ("Outro erro ocorreu!");
}
}
A instância do operador é usada no segundo, e o código é o seguinte:
A cópia do código é a seguinte:
tentar {
Eval ("A ++ B");
} catch (OException) {
if (instância de OException de SyntaxError) {
alerta ("Ocorreu SyntaxError!");
} outro {
alerta ("Outro erro ocorreu!");
}
}
4) Declaração de arremesso de exceção de lançar
Na terceira edição do ECMAScript, é usado para lançar exceções propositadamente. O objeto de erro jogado pode ser uma string, um número, um valor booleano ou um objeto real ou um objeto de erro (seu construtor tem apenas uma função, ou seja, uma mensagem de erro). EG1. lançar um novo erro ("Ocorreu o erro!");
EG2.
A cópia do código é a seguinte:
função addtwonumber (a, b) {
if (argumentos.length <2) {
lançar um novo erro ("dois números precisam ser transmitidos!");
}
}
tentar {
resultado = addtwonumber (90);
} catch (OException) {
if (instância de OException de SyntaxError) {
alerta ("SyntaxError:" + oexception.message);
} else if (oxception instância do erro) {
alerta (OException.Message);
}
}
O exposto acima é todo o conteúdo descrito neste artigo. Eu espero que você possa gostar.