Quando MinhaExcecao herda de Exception, ao utilizar o método deposita() terei duas formas de tratar a exceção no main, utilizando um try/catch ou lançando throws na assinatura do método correto? Veja o código abaixo:
public class TestaTratamentoTryCatch {
public static void main(String[] args) {
Conta conta = new Conta();
//Esse seria o tratamento utilizando o try/catch
try {
conta.deposita();
throw new MinhaExcecao("Minha exceção sendo usada");
} catch (MinhaExcecao ex) {
System.out.println(ex.getMessage());
System.out.println("Tratamento...");
}
}
Agora vamos ao tratamento utilizando throws na assinatura do método que chamou o deposita(), no caso o main. Será necessário colocar um throws na assinatura do main.
public class TesteTratamentoThrows {
public static void main(String[] args) throws MinhaExcecao {
Conta conta = new Conta();
conta.deposita();
throw new MinhaExcecao("Usando minha excecao");
//Nenhum código irá compilar a partir daqui.
}
}
Agora o meu problema, nada que vier abaixo do throw irá compilar. Qual é então o sentido de fazermos o tratamento utilizando throws na assinatura?
Obrigado