throw new Error(...)Protéger la méthode head() du container Liste<E> avec une erreur explicite.
if (content == null).throw new Error("Empty list"); (ou une exception plus spécifique).Protéger la méthode head() du container Liste<E> avec une erreur explicite.
Tester content == null en tout début de head(), avant tout accès aux champs de content :
E head() {
if (content == null) {
// cas invalide détecté avant tout accès à content.head
}
return content.head;
}
Lancer une Error avec un message explicite plutôt que laisser une NullPointerException survenir :
E head() {
if (content == null) throw new Error("Empty list");
return content.head;
}
// Appel sur liste vide : Error("Empty list") au lieu de NullPointerException
Documenter le contrat de la méthode : head() ne doit être appelé que sur une liste non vide ; le code appelant doit vérifier avant d'appeler :
/**
* Retourne le premier élément de la liste.
* @throws Error si la liste est vide (content == null)
* Prérequis : la liste ne doit pas être vide.
*/
E head() {
if (content == null) throw new Error("Empty list");
return content.head;
}
head() lance une Error("Empty list") explicite si appelée sur une liste vide, ce qui est bien plus informatif qu'une NullPointerException implicite.
Les applications suivantes et la correction guidée sont réservées aux membres Premium
La méthode et sa première application corrigée restent en accès libre. Le Premium débloque les applications suivantes, l'aide IA et le suivi de ta maîtrise.