Blog Alphorm Logo de blog informatique spécialisé en technologie et solutions IT
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Comprendre la Gestion des Exceptions en PL/SQL
Agrandisseur de policeAa
Blog AlphormBlog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Search
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Suivez-nous
© Alphorm 2024 - Tous droits réservés
Bases de donnéesDéveloppement

Comprendre la Gestion des Exceptions en PL/SQL

L'Équipe Alphorm Par L'Équipe Alphorm 21 novembre 2024
Partager
Partager

La gestion des erreurs dans PL/SQL peut devenir complexe, surtout lorsque des exceptions ne sont pas correctement gérées.

Des erreurs non gérées peuvent entraîner des applications instables et mettre en péril l’intégrité des données.

Cet article vous guide à travers les meilleures pratiques pour gérer les exceptions en PL/SQL, assurant ainsi la robustesse et la fiabilité de vos applications.

Table de matière
Gestion des exceptions PL/SQLFAQConclusion

Formation Le langage PL/SQL : Le Guide Complet

Maîtriser le langage SQL en environnement SGBDR. SQL n'aura plus de secrets pour vous !

Découvrir cette formation

L’objectif de ce document est de consolider les connaissances sur la gestion des exceptions dans PL/SQL, un aspect essentiel pour créer des applications robustes et fiables. Ce récapitulatif permet de revoir les différents types d’exceptions, qu’elles soient prédéfinies ou personnalisées, et de comprendre comment déclencher et gérer des erreurs dans des blocs PL/SQL. À travers des exercices pratiques, les utilisateurs apprendront à créer des exceptions sur mesure en réponse à des conditions spécifiques dans le code, ainsi qu’à traiter les violations de contraintes d’intégrité lors de la manipulation des données.

Question : Ce que nous avons étudié ?

Les types d’exceptions

  • Exceptions prédéfinies (comme NO_DATA_FOUND, ZERO_DIVIDE, etc.)
  • Exceptions non prédéfinies

La création et le déclenchement d’une exception dans un bloc PL/SQL

  • Utilisation des mots-clés RAISE et EXCEPTION

Les exceptions anonymes

  • Gestion d’erreurs spécifiques sans création d’une exception nommée

Les exceptions utilisateurs

  • Création d’exceptions personnalisées pour des règles métier spécifiques

Gestion des exceptions PL/SQL

Pour mettre en pratique les concepts abordés, voici un exercice d’application.

  • Modification de la commission d’un salarié :Créez un bloc PL/SQL permettant de modifier la commission d’un salarié. Si la nouvelle commission dépasse le salaire de l’employé, le programme doit déclencher une exception personnalisée.
  • Suppression d’un salarié avec gestion des contraintes d’intégrité :Créez un bloc PL/SQL qui déclenche une exception « ORA-02292: violation de contrainte d’intégrité » lorsque l’on essaie de supprimer un salarié ayant traité des commandes.

Voici les solutions proposées ainsi que les résultats attendus pour l’exercice, permettant de vérifier et de comparer les réponses obtenues avec les solutions recommandées.

Solution 1: Modification de la commission d’un salarié avec vérification

Explication de la solution : Dans cette solution, un bloc PL/SQL est conçu pour modifier la commission d’un salarié. Le bloc commence par récupérer le salaire actuel du salarié concerné. Ensuite, une comparaison est faite entre la nouvelle commission souhaitée et le salaire actuel. Si la commission est supérieure au salaire, une exception personnalisée ex_commission_exceeds_salary est déclenchée, et un message d’erreur est affiché pour notifier que la commission ne peut pas dépasser le salaire. Si la commission est dans les limites acceptables, elle est mise à jour dans la base de données.

				
					
 DECLARE
v_numero_sal NUMBER := 3; -- Remplacez par l'ID du salarié concerné
v_new_commission NUMBER := 3000; -- Nouvelle valeur de commission
v_salaire NUMBER;
ex_commission_exceeds_salary EXCEPTION;
BEGIN
-- Récupération du salaire du salarié
SELECT SALAIRE INTO v_salaire
FROM salaries
WHERE NUMERO_SAL = v_numero_sal;
-- Vérification si la commission dépasse le salaire
IF v_new_commission > v_salaire THEN
RAISE ex_commission_exceeds_salary;
ELSE
-- Mise à jour de la commission si condition respectée
UPDATE salaries
SET COMISSION = v_new_commission
WHERE NUMERO_SAL = v_numero_sal;
DBMS_OUTPUT.PUT_LINE('Commission mise à jour avec succès.');
END IF;
EXCEPTION
WHEN ex_commission_exceeds_salary THEN
DBMS_OUTPUT.PUT_LINE('Erreur : La commission ne peut pas être supérieure au salaire.');
END;
/

				
			

Résultat attendu :

  • Si la commission est inférieure ou égale au salaire, le message « Commission mise à jour avec succès. » s’affiche, indiquant que l’opération a été effectuée.
  • Si la commission dépasse le salaire, l’exception est déclenchée, et le message« Erreur :La commission ne peut pas être supérieure au salaire. »est affiché, sans modifier la commission.
Erreur PL/SQL sur commission excédant salaire.

Explication de la solution : Ce bloc PL/SQL tente de supprimer un salarié. Cependant, si le salarié a traité des commandes (liées par une contrainte de clé étrangère dans une autre table), une exception de type ORA-02292 est déclenchée par la base de données, indiquant une violation de contrainte d’intégrité. Le code capture cette erreur et affiche un message personnalisé pour informer que le salarié ne peut pas être supprimé s’il a des commandes associées.

Code :

				
					
 DECLARE
v_numero_sal NUMBER := 3; -- Remplacez par l'ID du salarié à supprimer
BEGIN
DELETE FROM salaries
WHERE NUMERO_SAL = v_numero_sal;
DBMS_OUTPUT.PUT_LINE('Salarié supprimé avec succès.');
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE = -2292 THEN
DBMS_OUTPUT.PUT_LINE('ORA-02292: Violation de contrainte d''intégrité - impossible de supprimer un salarié avec des commandes associées.');
ELSE
DBMS_OUTPUT.PUT_LINE('Une erreur inattendue est survenue : ' || SQLERRM);
END IF;
END;
/

				
			

Résultat attendu :

  • Si le salarié n’a pas de commandes associées, le message « Salarié supprimé avec succès. » est affiché, indiquant que la suppression a été réussie.
Message succès suppression salarié PL/SQL
  • Si le salarié a des commandes associées, l’exception ORA-02292 est capturée, et le message« ORA-02292 :Violation de contrainte d’intégrité – impossible de supprimer un salarié avec des commandes associées. »est affiché, sans supprimer le salarié.

Formez-vous gratuitement avec Alphorm !

Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.

Démarrer gratuitement
illustration processus de paiement en ligne avec étapes claires et convivialité

FAQ

Qu'est-ce qu'une exception prédéfinie en PL/SQL ?
Une exception prédéfinie en PL/SQL est une erreur courante déjà définie par le système, comme NO_DATA_FOUND ou ZERO_DIVIDE. Ces exceptions facilitent la gestion des erreurs en fournissant des noms explicites pour des situations d’erreur typiques, permettant ainsi aux développeurs de gérer efficacement les erreurs sans avoir à définir manuellement des exceptions pour chaque cas.
Comment créer une exception personnalisée en PL/SQL ?
Pour créer une exception personnalisée en PL/SQL, on utilise le mot-clé EXCEPTION pour déclarer une nouvelle exception, puis le mot-clé RAISE pour la déclencher lorsque certaines conditions sont remplies. Par exemple, une exception personnalisée peut être utilisée pour vérifier et signaler lorsque la commission d’un salarié dépasse son salaire, assurant ainsi le respect des règles métier spécifiques.
Comment gérer une violation de contrainte d'intégrité en PL/SQL ?
En PL/SQL, une violation de contrainte d’intégrité, telle que ORA-02292, se produit lorsqu’une action compromet l’intégrité référentielle des données. Pour gérer cela, un bloc d’exception peut être utilisé pour capturer cette erreur spécifique et afficher un message approprié. Par exemple, lors de la suppression d’un salarié lié à des commandes, une exception peut être levée pour empêcher la suppression et maintenir l’intégrité des données.
Quels sont les types d'exceptions en PL/SQL ?
En PL/SQL, il existe principalement deux types d’exceptions : les exceptions prédéfinies et les exceptions utilisateurs. Les exceptions prédéfinies sont celles qui sont intégrées au système, comme NO_DATA_FOUND, tandis que les exceptions utilisateurs sont créées pour répondre à des besoins spécifiques d’une application, permettant de gérer des situations d’erreur particulières non couvertes par les exceptions prédéfinies.
Pourquoi utiliser des exceptions anonymes en PL/SQL ?
Les exceptions anonymes en PL/SQL sont utilisées pour gérer des erreurs spécifiques sans créer une exception nommée. Cela est particulièrement utile pour les erreurs rares ou non critiques qui ne nécessitent pas une gestion complexe. Les exceptions anonymes simplifient le code en permettant une gestion des erreurs directe et efficace sans la surcharge de déclarer des exceptions supplémentaires.

Conclusion

La gestion des exceptions en PL/SQL est essentielle pour développer des applications fiables. Comment pouvez-vous intégrer ces techniques dans vos projets actuels pour améliorer la robustesse de votre code ?

ÉTIQUETÉ : PL/SQL
Facebook
Twitter
LinkedIn
Email
WhatsApp
Par L'Équipe Alphorm
Démocratiser la Connaissance Informatique pour Tous !
Suivre :
L'Équipe Alphorm, c'est la démocratisation de la connaissance informatique. Passionnés et dévoués, nous sommes là pour vous guider vers le succès en rendant la technologie accessible à tous. Rejoignez notre aventure d'apprentissage et de partage. Avec nous, le savoir IT devient une ressource inspirante et ouverte à tous dans un monde numérique en constante évolution.

Derniers Articles

  • Techniques pour gérer les fichiers texte en C#
  • Créer et lire un fichier CSV avec C#
  • JSON : Comprendre et Utiliser Efficacement
  • Créer une Base SQLite dans C#
  • Lecture des données SQLite simplifiée
Laisser un commentaire Laisser un commentaire

Laisser un commentaire Annuler la réponse

Vous devez vous connecter pour publier un commentaire.

Blog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Comprendre la Gestion des Exceptions en PL/SQL

© Alphorm - Tous droits réservés