Middle
Quais são as formas de tratar exceções verificadas?
sobes.tech IA
Resposta da IA
- Usar o bloco
try-catch: permite capturar exceções e tratá-las, evitando a terminação inesperada do programa. - Declarar que um método lança uma exceção, usando a palavra-chave
throwsna assinatura do método: isso transfere a responsabilidade do tratamento para o código que o chama. - Envolver uma exceção verificável numa não verificável: permite lançar a exceção sem tratamento explícito, mas pode esconder um problema real.
Exemplo de uso de try-catch:
// Exemplo de uso de try-catch para tratar uma exceção verificável
try {
// Código que pode lançar uma exceção verificável (por exemplo, IOException)
FileReader file = new FileReader("my_file.txt");
// Trabalhar com o arquivo...
} catch (IOException e) {
// Tratamento de IOException
e.printStackTrace(); // Mostrar a pilha de chamadas para depuração
System.err.println("Erro ao trabalhar com o arquivo: " + e.getMessage());
}
Exemplo de uso de throws:
// Exemplo de uso de throws na assinatura do método
public void readFile(String fileName) throws IOException {
FileReader file = new FileReader(fileName);
// Trabalhar com o arquivo...
}
// O código que chama deve tratar IOException ou declará-la na sua própria assinatura
public void processFile(String filePath) {
try {
readFile(filePath);
} catch (IOException e) {
System.err.println("Erro ao ler o arquivo: " + e.getMessage());
}
}
Exemplo de envolver numa exceção não verificável:
// Exemplo de envolver uma exceção verificável numa não verificável
public void unsafeOperation() {
try {
// Código que pode lançar uma exceção verificável
throw new IOException("Exemplo de IOException");
} catch (IOException e) {
// Transformar a exceção verificável numa não verificável
throw new RuntimeException("Erro detectado na operação", e);
}
}