private static void metodo2() throws MinhaExcecao {
System.out.println("Ini do metodo2");
throw new MinhaExcecao("deu muito errado");
//System.out.println("Fim do metodo2");
}
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
private static void metodo2() throws MinhaExcecao {
System.out.println("Ini do metodo2");
throw new MinhaExcecao("deu muito errado");
//System.out.println("Fim do metodo2");
}
Não é obrigado. Mas porque seu método avisaria que lança uma excepcion sem lançar ?
Bom dia, Douglas!
Olhe só, quando você criou o objeto MinhaExcecao(msg), no metodo2(), na verdade, você neste momento, estar lançando uma "bomba" no mesmo, fazendo com que o fluxo de execução do código mude. Por isso que a assinatura do método tem que ser sinalizado, informando que ali possui um código perigoso.
Caso contrário, se no método não possuir algum código que comprometa o seu fluxo de execução ou que cause algum erro de compilação, então a assinatura do método não precisa ser sinalizada.
Não é. Não haverá erro de compilação. É importante entender também, que o fato de haver "throws" na assinatura significa que o método tem potencial de lançar a exceção, ele pode ou não lançá-la.