0% ont trouvé ce document utile (0 vote)
11 vues5 pages

TP Gestion Exceptions Bibliotheque Dev

Le document présente une activité de synthèse sur la gestion des exceptions en programmation orientée objet, spécifiquement dans le cadre d'un système de bibliothèque. Il décrit les objectifs pédagogiques, les cas pratiques à gérer, et les consignes pour créer des exceptions personnalisées ainsi que des méthodes pour emprunter et rendre des livres. Un QCM évalue la compréhension des concepts de gestion des exceptions en Python.

Transféré par

Taha Adir
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
11 vues5 pages

TP Gestion Exceptions Bibliotheque Dev

Le document présente une activité de synthèse sur la gestion des exceptions en programmation orientée objet, spécifiquement dans le cadre d'un système de bibliothèque. Il décrit les objectifs pédagogiques, les cas pratiques à gérer, et les consignes pour créer des exceptions personnalisées ainsi que des méthodes pour emprunter et rendre des livres. Un QCM évalue la compréhension des concepts de gestion des exceptions en Python.

Transféré par

Taha Adir
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

ACTIVITÉ DE SYNTHÈSE – Gestion des exceptions en POO : Système de bibliothèque

Objectifs pédagogiques :
Comprendre comment intégrer la gestion des erreurs dans un système orienté objet.
Utiliser try, except, finally dans des classes.
Lever des exceptions personnalisées selon des règles métier (ex : emprunt dépassé, livre
non disponible).
Construire un système robuste et fiable grâce à des messages d’erreur précis.

TRAVAUX PRATIQUES – Système de gestion de bibliothèque


Contexte :
Vous êtes chargé(e) de créer un mini-système de gestion d’une bibliothèque. Chaque
livre peut être emprunté ou rendu par un usager. Vous devez gérer les cas suivants :
- Un utilisateur tente d'emprunter un livre déjà emprunté.
- Un utilisateur tente de rendre un livre qu’il n’a jamais emprunté.
Tous les essais doivent être loggés dans le bloc finally.

Consignes :
- Créez une classe LivreIndisponibleException(Exception) avec un message personnalisé :
Le livre demandé est déjà emprunté.
- Créez une classe LivreNonEmprunteException(Exception) avec un message :
Impossible de rendre un livre non emprunté.
- Créez une classe Livre avec :
Attributs : titre (str), emprunte (bool, par défaut à False)
- Méthode emprunter() :
Lève LivreIndisponibleException si emprunte == True
- Méthode rendre() :
Lève LivreNonEmprunteException si emprunte == False
- Testez différents cas dans un bloc try-except-finally :
* Emprunter un livre disponible.
* Emprunter un livre déjà emprunté.
* Rendre un livre emprunté.
* Rendre un livre déjà rendu.
QCM – Évaluation des acquis (20 questions)

Compréhension générale

1. Pourquoi utilise-t-on la gestion des exceptions en Python ?


a) Pour ignorer les erreurs
b) Pour améliorer la vitesse du programme
c) Pour gérer les erreurs sans arrêter le programme
d) Pour éviter d’écrire des conditions

2. Quelle est la bonne syntaxe pour gérer une erreur ?


a) try...then...end
b) try...except
c) try...catch
d) try...if...else

3. Que fait ce code ?

try:

x=1/0

except ZeroDivisionError:

print("Division par zéro interdite")

a) Il affiche une erreur


b) Il ne fait rien
c) Il affiche "Division par zéro interdite"
d) Il affiche 0

Blocs try, except, finally

4. Le bloc finally :
a) S’exécute seulement s’il y a une erreur
b) S’exécute uniquement si aucune erreur n’a lieu
c) S’exécute toujours, qu’il y ait erreur ou non
d) Ne s’utilise que dans les classes

5. Pourquoi créer une exception personnalisée dans une application ?


a) Pour éviter d’utiliser try-except
b) Pour rendre le code plus lent
c) Pour représenter des erreurs spécifiques à l’application
d) Pour éviter d’écrire des messages d’erreur

6. Que fait cette ligne ?

raise LivreIndisponibleException()

a) Elle crée une nouvelle classe


b) Elle lève une exception personnalisée
c) Elle capture une exception
d) Elle exécute la méthode __str__()

7. Quel mot-clé permet de définir une exception personnalisée ?


a) def
b) exception
c) raise
d) class

Cas pratiques du TP bibliothèque

8. Dans le TP bibliothèque, que doit faire la méthode emprunter() si le livre est


déjà emprunté ?
a) Laisser faire sans rien dire
b) Lancer une exception personnalisée
c) Supprimer le livre
d) Créer un nouveau livre

9. Que fait ce code ?

class MonException(Exception):

pass

a) Il capture une exception système


b) Il définit une exception personnalisée
c) Il affiche une erreur
d) Il exécute automatiquement le bloc finally

10. Lequel de ces cas n’est pas géré par une exception dans le TP bibliothèque ?
a) Livre inexistant
b) Livre déjà emprunté
c) Mauvais identifiant utilisateur
d) Tri des livres
Comportement des exceptions

11. Que se passe-t-il si une exception n’est pas interceptée dans un programme ?
a) Elle est automatiquement ignorée
b) Elle est transformée en avertissement
c) Elle interrompt le programme
d) Elle est enregistrée dans un fichier

12. Le mot-clé raise sert à :


a) Capturer une exception
b) Définir une nouvelle classe
c) Lancer une exception
d) Lire un fichier

13. Dans quel cas utilise-t-on finally ?


a) Pour forcer l'arrêt d’un programme
b) Pour exécuter un code même en cas d’erreur
c) Pour déclarer une fonction
d) Pour initialiser des variables globales

14. Que se passe-t-il si aucun except ne correspond à l’exception levée ?


a) Le programme continue sans problème
b) Python affiche une erreur et interrompt le programme
c) Python redémarre automatiquement
d) L’exception est ignorée

Syntaxe et structures

15. Quelle est la structure générale pour gérer des exceptions ?


a) try...except...catch
b) if...else...error
c) try...except...finally
d) check...raise

16. Peut-on avoir plusieurs blocs except après un bloc try ?


a) Non, un seul est autorisé
b) Oui, pour gérer différents types d’exceptions
c) Oui, mais uniquement dans les classes
d) Non, cela provoque une erreur de syntaxe
17. Peut-on lever une exception sans la traiter ?
a) Non, cela provoque une erreur
b) Oui, mais uniquement dans une fonction
c) Oui, l’exception peut être propagée
d) Non, Python empêche cela

18. Que permet l’utilisation d’une classe d’exception personnalisée ?


a) De rendre le programme plus rapide
b) D’ajouter de nouvelles fonctionnalités à Python
c) De définir des erreurs métiers spécifiques
d) D’éviter le bloc try

19. Quelle exception est levée si on accède à un index inexistant d’une liste ?
a) KeyError
b) TypeError
c) IndexError
d) ValueError

20. Est-il obligatoire d’utiliser le bloc finally ?


a) Oui, toujours
b) Non, il est optionnel
c) Seulement en cas d’erreur
d) Oui, si on utilise raise

Vous aimerez peut-être aussi