Como tratar uma exceção via reflexão

4 respostas
vanzella

Pessoal, me surgiu uma duvida de reflexão, por exemplo:
Tenho um método que lança um SQLException, quando eu fizer uma chamada a esse método via reflexão, teria como eu tratar essa exceção no invoke?

4 Respostas

T

Você trata a exceção InvocationTargetException, e chama o método getTargetException.
Esse método vai retornar a exceção lançada (que pode ser uma SQLException); então você usa um “instanceof” para ver se é uma SQLException.

victorwss

thingol:
Você trata a exceção InvocationTargetException, e chama o método getTargetException.
Esse método vai retornar a exceção lançada (que pode ser uma SQLException); então você usa um “instanceof” para ver se é uma SQLException.

Quase isso. A diferença é que ao invés de getTargetException(), atualmente getCause() é preferido.

T

Ohoh, eu não tinha lido direito o javadoc :stuck_out_tongue:
É isso mesmo: usar o getCause().

vanzella

Valeu de novo, perfeito.

Criado 16 de abril de 2008
Ultima resposta 16 de abr. de 2008
Respostas 4
Participantes 3