1.10 Les exceptions

(voir le chapitre dédié 7 pour plus de détails et des exemples)

Elles permettent de garantir une sortie propre et que le programme ne s’arrête pas de manière incontrôlée, s’il s’agit d’une situation contrôlable.

Méthodologie pour traiter une exception prédéfinie :

  • on récupère le nom de l’exception lorsque le programme s’arrête
  • on entoure le bout de code concerné dans un try{}
  • on fait suivre par un catch(Exception e) {}
  • si besoin, on ajoute un finally {} pour exécuter certaines instructions dans tous les cas (que l’exception soit levée ou non)
try {
  bout de mon code, surlequel je leve une exception;
} catch (uneException e) {
  instructions si levee de exception;
} finally {
  instructions optionnelles;
}

Une exception est un type : c’est pourquoi je la déclare et la nomme (e par exemple).

Méthodologie pour une méthode définie comme levant obligatoirement une exception :

  • on ajoute throws Exception à sa signature
  • on ajoute dans son body une instruction if qui, si elle est vraie, permet de levée l’exception avec throw new Exception
  • lors de l’appel de cette fonction, elle devra obligatoirement être encapsulée d’en un try...catch
... nomMethode(...) throws Exception {
  if (condition booleenne) {
    throw new Exception(...);
  }
}

La méthode .getMessage() permet de récupérer le message d’erreur.

La ‘StackTrace’ représente la totalité du message d’erreur.