<aside> 💡 Os famosos erros no código. São nada mais, nada menos que gargalos no programa que acontecem em tempo de execução.

</aside>


Leitura

Quando bem feitos, os erros dizem exatamente o problema do seu código, onde ele está e o que o causou. Resta apenas ler e consertar.

Contudo, como nem tudo é tão simples quanto parece, as exceções não são pontuais, elas são, geralmente uma pilha de erros entrelaçados. Ainda assim, não é nada de outro mundo, você supostamente conhece seu código e deve saber, apenas de olhar para os erros, a cagada que você fez.


Devemos odiar exceções?

Não, se o programa não parasse com a burrada que você o programador fez o problema seria bem maior.

Logo, nos resta tratá-las. O que é isso? Bem, se um erro acontecer; ele é importante? Deve para seu código.

graph TD
  A(Erro) --> B{Importante?} 
B --> Não --> Continua --> A
B --> Sim --> Quebra

Try… Catch

Confere se o código dá certo antes de executá-lo. Deu errado? Faz o que catch mandar. “Ahh, mas isso eu consigo fazer com if”, massa 👍. Muitas vezes, você realmente vai, mas caso você precise quebrar o programa como um todo ou queira continuar em caso de erros dos mais genéricos e óbvios a ponto de você achar que ninguém é tão burro de cometê-los (alguém é) ou esquecer deles e não colocá-los no “if”, um tratamento de exceções com esse bloco vai ser mais eficaz.

try{
	int number = Integer.parseInt(scanner.nextLine());
}catch(NumberFormatException nfe){
	System.out.println("Tipo inválido, escreva um número inteiro." + nfe)
} catch(Exception e){
	System.out.println("Não sei o que você errou, mas errou." + e);
} finally {
	System.out.println("Esta parte é opcional e vai ser realizada independente dos resultados acima. Fim do bloco.");
}

Null

Null é, em essência, nada. O inexistente. Não aponta para lugar nenhum. Não é um erro, mas causa vários.

A representação de um espaço vazio na memória.