js, mesmo que ocorram erros de js, nenhum erro será solicitado (para evitar um símbolo de triângulo amarelo no canto inferior direito do navegador, caso contrário, a experiência do usuário será ruim)
Copie o código do código da seguinte forma:
window.onerror=function(){retornar verdadeiro;}
O seguinte é obter informações de exceção js para facilitar aos desenvolvedores a localização de problemas
1, tente... pegue...
Copie o código do código da seguinte forma:
<script type="texto/javascript">
vartxt=""
mensagem de função()
{
tentar
{
adddlert("Bem-vindo convidado!")
}
pegar (errar)
{
txt="Há um erro nesta página./n/n"
txt+="Clique em "OK" para continuar visualizando esta página,/n"
txt+="Clique em "Cancelar" para retornar à página inicial./n/n"
if(!confirm(txt))
{
document.location.href="/index.html"
}
}
}
</script>
2, jogue
Copie o código do código da seguinte forma:
<script type="texto/javascript">
var x=prompt("Digite um número entre 0 e 10:","")
tentar
{
se(x>10)
jogue "Err1"
senão se(x<0)
jogue "Err2"
senão if(éNaN(x))
jogue "Err3"
}
pegar(er)
{
if(er=="Err1")
alert("Erro! O valor é muito grande!")
if(er == "Err2")
alert("Erro! O valor é muito pequeno!")
if(er == "Err3")
alert("Erro! O valor não é um número!")
}
</script>
3,um erro:
Copie o código do código da seguinte forma:
<script type="texto/javascript">
onerror=handleErr
vartxt=""
função handleErr(msg,url,l)
{
txt="Há um erro nesta página./n/n"
txt+="Erro:" + mensagem + "/n"
txt+="URL: " + url + "/n"
txt+="Linha:" + l + "/n/n"
txt+="Clique em "OK" para continuar./n/n"
alerta(txt)
retornar verdadeiro
}
mensagem de função()
{
adddlert("Bem-vindo convidado!")
}
</script>
Tratamento de exceções em js
Você pode usar try...catch em JavaScript para tratamento de exceções. Por exemplo:
tente { foo.bar();} catch (e) { alert(e.name + ": " + e.message);}
Atualmente, as exceções de sistema que podemos obter incluem principalmente os 6 tipos a seguir:
EvalError: gerado quando ocorre um erro ao executar código em eval()
RangeError: gerado quando uma variável ou parâmetro numérico está fora de seu intervalo válido
ReferenceError: gerado ao desreferenciar uma referência inválida
SyntaxError: gerado quando ocorre um erro de sintaxe ao analisar o código em eval()
TypeError: gerado quando uma variável ou parâmetro não é um tipo válido
URIError: gerado quando encodeURI() ou decodeURI() recebem parâmetros inválidos
Todos os seis objetos de exceção acima herdam do objeto Error. Todos eles suportam os dois métodos de construção a seguir:
new Error();new Error("Informações de exceção");
O método para lançar manualmente uma exceção é o seguinte:
Copie o código do código da seguinte forma:
tentar {
throw new Error("Opa!");}
pegar (e) {
alert(e.nome + ": " + e.mensagem);}
Se quiser determinar o tipo de informação de exceção, você pode fazer isso em catch:
Copie o código do código da seguinte forma:
tentar {
foo.bar();
} pegar (e) {
if (e instância de EvalError) {
alerta(e.nome + ":" + e.mensagem);
} else if (e instância de RangeError) {
alerta(e.nome + ": " + e.mensagem });
//etc
}
O erro tem as seguintes propriedades principais:
description: Descrição do erro (disponível apenas no IE).
fileName: O nome do arquivo do erro (disponível apenas no Mozilla).
lineNumber: O número de linhas com erro (disponível apenas no Mozilla).
mensagem: mensagem de erro (igual à descrição no IE)
nome: tipo de erro.
número: código de erro (disponível apenas no IE).
pilha: informações de pilha de erros como Stack Trace em Java (disponível apenas no Mozilla).
Portanto, para entender melhor a mensagem de erro, podemos alterar a parte catch para o seguinte formato:
Copie o código do código da seguinte forma:
tentar {
foo.bar();
} pegar(e) {
if (browserType! = BROWSER_IE) {
alert("nome: " + e.name + "mensagem: " + e.message + "lineNumber: " + e.lineNumber + "fileName: " + e.fileName + "stack: " + e.stack);
} outro {
alert("nome: " + e.name + "errorNumber: " + (e.number & 0xFFFF) + "mensagem: " + e.message "); } } "
O comando throw em JavaScript pode realmente lançar qualquer objeto, e podemos receber esse objeto em catch. Por exemplo:
Copie o código do código da seguinte forma:
tentar {
throw new Date(); // Lança o objeto de hora atual } catch (e) { alert(e.toLocaleString());
}