Il existe deux types d'exceptions dans Java: coché et non cochées exceptions. Pour les exceptions vérifiées, le compilateur vérifie si votre programme les gère, soit en les interceptant, soit en spécifiant (avec une clause throws
) que la méthode dans laquelle l'exception peut se produire, que la méthode puisse déclencher ce type d'exception.
Les classes d'exception qui sont des sous-classes de java.lang.RuntimeException
(et RuntimeException
elle-même) sont des exceptions non contrôlées. Pour ces exceptions, le compilateur n'effectue pas la vérification - vous n'avez donc pas besoin de les attraper ou de spécifier que vous pourriez les lancer.
La classe InterruptedException
est une exception vérifiée, vous devez donc l'attraper ou déclarer que votre méthode pourrait le lancer. Vous jetez l'exception du bloc catch
, vous devez spécifier que votre méthode pourrait jeter:
public void invalid() throws InterruptedException {
// ...
classes d'exception qui se prolongent java.lang.Exception
(sauf RuntimeException
et sous-classes) sont vérifiés exceptions.
Pour plus d'informations, consultez le document Java Tutorial about exceptions de Sun.
Quel genre d'erreur obtenez-vous? – Simon
Il est dit: exception non signalée java.lang.InterruptedException; doit être attrapé ou déclaré comme étant lancé – fireshadow52