Exercices Fonctions & Modules Hierarchie d'exceptions personnalisees
🎉

Bravo!

Avancé 🧠 Fondamentaux 30 XP 0 personnes ont réussi

Hierarchie d'exceptions personnalisees

En production, on crée souvent une hierarchie d'exceptions pour son application. On part d'une exception de base, puis on en derive des exceptions plus spécifiques.

class AppError(Exception):
pass

class ValidationError(AppError):
pass

class NotFoundError(AppError):
pass

L'avantage ? Tu peux attraper except AppError pour capturer toutes les erreurs de ton app, ou except ValidationError pour etre plus precis.

Écris une hierarchie d'exceptions pour une application bancaire :
BanqueError (base)
SoldeInsuffisantError (herite de BanqueError), prend montant_demande et solde_actuel
CompteInactifError (herite de BanqueError), prend numéro_compte

SoldeInsuffisantError.__str__ renvoie 'Solde insuffisant : demande X, disponible Y'
CompteInactifError.__str__ renvoie 'Compte NUMERO inactif'

Puis ecris retirer(solde, montant) qui leve SoldeInsuffisantError si montant > solde, sinon renvoie le nouveau solde.

Tests (3/5)

Retrait valide
assert retirer(100, 50) == 50
Solde insuffisant
try:
    retirer(50, 100)
    assert False
except SoldeInsuffisantError as e:
    assert e.montant_demande == 100
    assert e.solde_actuel == 50
Héritage BanqueError
try:
    retirer(0, 1)
except BanqueError:
    assert True

+ 0 tests cachés

Indices (3 disponibles)

solution.py