Como o idioma java, o JavaScript pode lançar exceções através de declarações de arremesso. Ao contrário da linguagem Java, o JavaScript pode lançar todos os tipos de valores através de instruções de arremesso, não apenas para lançar objetos de erro.
A cópia do código é a seguinte:
// Lança um objeto de erro.
tentar{
lançar um novo erro ("mensagem no objeto de erro");
} catch (e) {
console.log (e); // erro: mensagem no objeto de erro
}
tentar{
lançar "mensagem bruta";
} catch (mensagem) {
console.log (mensagem); // mensagem bruta
console.log (typeof mensagem); // string
}
tentar{
jogar 42;
} catch (code) {
console.log (código); // 42
console.log (código do tipoof); // número
}
Como o idioma java, se a exceção não for pega por nenhuma declaração de captura, a exceção será lançada ao usuário:
A cópia do código é a seguinte:
tentar{
// Lança um novo erro ("Erro de teste"); // O erro será lançado. Erro: erro de teste
} finalmente{
}
tentar{
lançar 42; // O erro será lançado. Erro: 42
} finalmente{
}
Para exceções de arremesso de captura, o JavaScript também usa as instruções Try/Catch/Finalmente. As regras de uso são: Tente é necessária, captura e finalmente são declarações opcionais, mas pelo menos uma de captura e finalmente deve aparecer.
Na declaração de captura, um parâmetro e (ou qualquer outro nome de variável legal) pode ser definido para armazenar os outliers jogados. Dentro da declaração de captura, esse parâmetro pode ser usado como uma variável local. Ao contrário de outro uso variável no JavaScript, as variáveis de parâmetros nas instruções de captura são válidas apenas dentro da instrução de captura (o escopo dessa variável é limitado à instrução CATCH).
Para finalmente, finalmente, o código em finalmente será executado, independentemente de haver uma exceção lançada na tentativa. Os detalhes incluem:
1. Nenhuma exceção ocorre na tentativa. Quando a instrução TRY for executada, o código finalmente será executado.
2. Nenhuma exceção ocorre na tentativa, mas quando o código de tentativa é exitado devido à execução de declarações de interrupção, continuação ou retorno, o código em finalmente será executado.
3. Uma exceção ocorre na tentativa. Depois que a exceção é processada pela declaração de captura, o código finalmente é executado.
4. Uma exceção ocorre na tentativa, mas quando a exceção precisa ser continuada devido à ausência de uma declaração de captura, o código em finalmente será executado. Vale a pena notar que, no caso em que a declaração de captura está faltando, o JavaScript executará o código finalmente e depois continuará lançando uma exceção para cima.
Em finalmente, o código, se o Break, continue ou retornar as declarações, o JavaScript executará diretamente essas instruções e ignorará o intervalo, continuará ou retornará declarações que podem existir no código de tentativa; Mesmo que a instrução CATCH esteja faltando, resultando em uma exceção que precisa ser relatada, o JS descartará as informações de relatórios de exceção e continuará a executar o intervalo, continuar ou devolver as instruções finalmente. Da mesma forma, se uma exceção for lançada no código finalmente, o JavaScript descartará todas as declarações de quebra, continuará ou devolverá no código de tentativa e também descartará o possível comportamento de relatórios de exceção e apenas lançará exceções no código finalmente.