Middle
Que tipo de exceção em Java é impossível de tratar?
sobes.tech IA
Resposta da IA
Error. Estes são problemas graves dos quais não é possível recuperar razoavelmente na aplicação, por exemplo, esgotamento de memória (OutOfMemoryError) ou estouro de pilha (StackOverflowError). Indicam falhas críticas no ambiente da Máquina Virtual Java (JVM).
Ao contrário de Exception (que pode ser verificada ou não verificada), Error deve ser capturada apenas em casos excepcionais (por exemplo, ao fazer logging), mas não para continuar a execução normal do programa.
Exemplo:
// Este código demonstra Error,
// mas geralmente não é recomendado capturar Error em produção
try {
// Tentativa de provocar OutOfMemoryError (pode não funcionar dependendo das configurações da JVM)
List<byte[]> list = new ArrayList<>();
while (true) {
list.add(new byte[1024 * 1024]); // Aloca muita memória
}
} catch (OutOfMemoryError e) {
// Logging ou tentativa de encerramento
System.err.println("Erro crítico: memória insuficiente!");
e.printStackTrace();
// Normalmente, aqui é feita a lógica de encerramento de emergência
}