Checked Exceptions

5 respostas
M
 que IOException é uma checked exception, o compilador não deveria reclamar que o método abaixo nunca lança a IOException e por isso não poderia ser declarada na cláusula throws?





class NovaException extends Exception {}





class Base {


	/*


	 * Não deveria dar o erro:


	 * IOException é um checked exception


	 * e nunca é lançada no corpo deste método?


	 */


	public void amethod() throws NovaException, java.io.IOException {}


	public static void main(String args[]) {


		Base b = new Base();


		


		try {


			b.amethod();


		} catch (NovaException e) {


			System.out.println(e);


		} finally {


			System.out.println("finally executado");


		}


	}


}

5 Respostas

A

Neste caso nao, pois voce sequer esta usando o pacote java.io!

Nao entendi muito bem, mas se nao for isso que eu presumi, eslcareca mais…



B

Não existe problema nenhum em colocar exceptions "a mais". O que não poderia acontecer é o contrário, você estar fazendo alguma operação de IO e não tratar uma possível Exception.

Colocar uma exception a mais em um método é até um recurso que você pode utilizar para garantir que outras classes que utilizem esse método estejam preparadas para receber a exception caso algum dia você mude de idéia e resolva colocar neste método algum IO.

M

O erro que eu "esperava provocar" era este:



TExcep4.java:19: exception java.io.IOException is never thrown in body of

corresponding try statement

} catch (IOException e) {

^

1 error



Eu me lembrava dele quando estudei exceções e falhei ao tentar reproduzir o erro no exemplo acima, para isso bastou tirar a IOException da cláusula throws do método e tentar pegá-la no bloco try.



Obrigado!

A

So uma dica, voce jah experimentou usar o Eclipse? Na versao M4, ele jah vem com a implementacao de exibir codigos desnescessarios, tais como exceptions que nao serao nescessarias, imports que nao estao sendo utilizados pela classe etc…



Vale a pena! :slight_smile:

M

Obrigado pela dica, eu uso o Forte 3 (que já está "defasado"), mas vou fazer um esforço pra começar a usar o Eclipse.

Criado 18 de janeiro de 2003
Ultima resposta 19 de jan. de 2003
Respostas 5
Participantes 3