Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Propagação de Exceções | Seção
Tratamento de Exceções em Java

bookPropagação de Exceções

Deslize para mostrar o menu

Quando um programa Java é executado, exceções podem ser lançadas a partir de chamadas de métodos em níveis profundos.

Note
Definição

Propagação de exceção é o processo pelo qual uma exceção sobe na pilha de chamadas até ser capturada por um bloco catch correspondente ou, se não for tratada, causar a finalização do programa.

A palavra-chave throws é utilizada em declarações de métodos para indicar que um método pode lançar uma ou mais exceções verificadas. Isso significa que o método não trata a exceção diretamente, mas transfere a responsabilidade de tratá-la para os métodos que o invocam.

Se um método não captura uma exceção com um bloco try-catch, a exceção é repassada para o método que o chamou. Esse processo continua pela cadeia de chamadas de métodos. Se nenhum dos métodos na pilha de chamadas tratar a exceção, ela eventualmente chega à Máquina Virtual Java (JVM), que encerrará o programa e exibirá um stack trace. Esse mecanismo permite centralizar o tratamento de exceções em um nível superior da aplicação, em vez de tratar todas as possíveis exceções no ponto onde podem ocorrer.

Main.java

Main.java

copy
1234567891011121314151617181920
package com.example; import java.io.IOException; public class Main { public static void main(String[] args) { try { readFile(); System.out.println("File read successfully."); } catch (IOException e) { System.out.println("Caught exception: " + e.getMessage()); } } // This method declares that it throws IOException public static void readFile() throws IOException { // Simulate an error when reading a file throw new IOException("Unable to read file."); } }

No programa acima, o método readFile declara que pode lançar uma IOException utilizando a palavra-chave throws. Quando readFile é chamado a partir de main, ele não trata a exceção diretamente. Em vez disso, se ocorrer uma IOException, ela é repassada para o método main. O método main contém um bloco try-catch que captura a IOException e a trata exibindo uma mensagem.

Isso demonstra como a exceção percorre desde o ponto em que é lançada, passando pela pilha de chamadas, até ser finalmente capturada e tratada por um bloco catch adequado. Se o método main não capturasse a exceção, ela continuaria a se propagar e a JVM encerraria o programa após exibir o stack trace.

question mark

Qual é o propósito da palavra-chave throws em uma declaração de método Java?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 9

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Seção 1. Capítulo 9
some-alt