Tipos de situações excepcionais em JavaScript
Em JavaScript, há muito poucas situações em que exceções ocorrem. Em primeiro lugar, simplesmente porque há muito poucos lugares para elas ocorrerem.
Em segundo lugar, porque a própria linguagem é "permissiva": ela ignora muitas coisas, por exemplo, divisão por zero ou código HTML incorreto. Mesmo se você especificar um caminho inválido para uma imagem que deseja carregar, o JavaScript perdoará você e não considerará isso uma exceção.
No entanto, existem situações excepcionais. Nós analisaremos as duas mais simples e, com seu exemplo, estudaremos o trabalho com exceções em JavaScript.
A primeira exceção ocorre quando queremos analisar um JSON inválido:
let data = JSON.parse('{1,2,3,4,5}'); // este json é inválido
E a segunda exceção ocorre quando o armazenamento local,
alocado para nosso site, fica cheio
(mais de 5 megabytes). Vamos provocar artificialmente
essa exceção:
let str = '';
for (let i = 1; i <= 6 * 10 ** 6; i++) { // formando uma string com mais de 5 mb
str += '+';
}
localStorage.setItem('key', str); // tentando escrever no armazenamento
Como o JavaScript reage a tais situações excepcionais? Ele simplesmente exibe um erro no console e interrompe a execução adicional do script.
Nossa tarefa, como programadores, consiste em
detectar tal situação e lidar com ela de alguma forma,
não permitindo que o programa pare completamente
sua execução. Para isso,
existe uma construção especial try-catch,
que analisaremos nas próximas lições.
Crie uma string suficientemente grande e tente gravá-la no armazenamento local. Certifique-se de que um erro aparecerá no console.
Tente analisar um JSON inválido. Certifique-se de que um erro aparecerá no console.