2009-07-09 9 views

Répondre

1

Toutes les exceptions dans Java sont vérifiées. Cela signifie qu'il doit être explicitement intercepté dans un bloc try-catch.

Les exceptions d'exécution n'ont pas besoin d'être interceptées (java.lang.RuntimeException). La même chose s'applique pour les erreurs (java.lang.Error).

Par conséquent, votre exception est vérifiée. Si vous voulez le décocher, sous-classe RuntimeException.

6

Si vous étendez Exception, il est "vérifié", c'est-à-dire que si vous le lancez, il doit être intercepté ou déclaré dans la signature de la méthode.

Les exceptions non contrôlées étendent RuntimeException et n'ont pas besoin d'être déclarées ou interceptées. Il est également possible de créer une exception non vérifiée en étendant Error ou l'une de ses sous-classes, mais ces exceptions sont par convention réservées à l'usage du JDK.

1

L'exception que vous avez montré est un vérifié exception et doit être soit pris ou déclarées thrown.

L'alternative serait une exception décochée, qui est déclaré comme suit:

Class MyOwnException extends RuntimeException 
{ 
    ... 
} 

Bien qu'il soit pas strictement respectée, l'extension RuntimeException est censé être la réserve du JDK.

+0

Spring enveloppe toutes les exceptions à RuntimeExceptions. Le problème des exceptions vérifiées par opposition aux exceptions non vérifiées est controversé. – kgiannakakis

+0

@kgiannakakis - «en quelque sorte controversé» pour dire le moins :-) –

Questions connexes