0% ont trouvé ce document utile (0 vote)
0 vues1 page

StudyAI_Explication-2

La gestion des exceptions en T-SQL est cruciale pour traiter les erreurs lors de l'exécution de requêtes. Elle implique l'identification des types d'erreurs, l'utilisation de blocs TRY-CATCH pour capturer les erreurs, et l'emploi de fonctions système pour obtenir des détails sur celles-ci. Des erreurs personnalisées peuvent également être définies à l'aide de la syntaxe THROW ou RAISERROR.

Transféré par

adam koudri
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)
0 vues1 page

StudyAI_Explication-2

La gestion des exceptions en T-SQL est cruciale pour traiter les erreurs lors de l'exécution de requêtes. Elle implique l'identification des types d'erreurs, l'utilisation de blocs TRY-CATCH pour capturer les erreurs, et l'emploi de fonctions système pour obtenir des détails sur celles-ci. Des erreurs personnalisées peuvent également être définies à l'aide de la syntaxe THROW ou RAISERROR.

Transféré par

adam koudri
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

Explication

Le concept de gestion des exceptions en Transact SQL (T-SQL) est essentiel pour gérer les erreurs qui
peuvent survenir pendant l'exécution d'une requête ou d'un programme stocké. Pour mieux comprendre ce
concept, nous allons utiliser une analogie et décomposer les étapes simples de la gestion des exceptions.

Imaginez que vous êtes un conducteur de voiture qui doit naviguer à travers une route sinueuse. Vous devez
être préparé à gérer les obstacles qui peuvent survenir, tels que des trous dans la route ou des conditions
météorologiques défavorables. De même, en T-SQL, vous devez être préparé à gérer les erreurs qui peuvent
survenir pendant l'exécution d'une requête ou d'un programme stocké.

Voici les étapes simples pour gérer les exceptions en T-SQL :

1. **Identifier les types d'erreurs** : Il existe deux types d'erreurs en T-SQL : les erreurs générées par le
système et les erreurs personnalisées définies par l'utilisateur.
2. **Utiliser le bloc TRY-CATCH** : Le bloc TRY-CATCH est utilisé pour capturer les erreurs qui peuvent
survenir pendant l'exécution d'une requête ou d'un programme stocké. Le bloc TRY contient les instructions
SQL à exécuter, tandis que le bloc CATCH contient les instructions pour gérer les erreurs.
3. **Utiliser les fonctions système** : Les fonctions système telles que `ERROR_NUMBER()`,
`ERROR_SEVERITY()`, `ERROR_STATE()`, `ERROR_PROCEDURE()` et `ERROR_LINE()` peuvent être
utilisées pour obtenir des détails sur l'erreur.
4. **Définir des erreurs personnalisées** : Les erreurs personnalisées peuvent être définies à l'aide de la
syntaxe `THROW` ou `RAISERROR`.

Exemple 1 : Sans capture de l'exception


```sql
BEGIN
DECLARE @varVal INT = 10;
DECLARE @varDiv INT = 0;
DECLARE @varRes INT;
SET @varRes = @varVal / @varDiv;
PRINT @varRes;
END;
GO
```
Cet exemple montre comment une erreur peut survenir lors de la division par zéro.

Exemple 2 : Capture de l'erreur dans un bloc


```sql
BEGIN
DECLARE @varVal INT = 10;
DECLARE @varDiv INT = 0;
DECLARE @varRes INT;
BEGIN TRY
SET @varRes = @varVal / @varDiv;
PRINT @varRes;
END TRY
BEGIN CATCH
PRINT 'Une erreur est survenue : ' + ERROR_MESSAGE();
PRINT 'Numéro de l''erreur : ' + CAST(ERROR_NUMBER() AS NVARCHAR(10));
PRINT 'Gravité : ' + CAST(ERROR_SEVERITY() AS NVARCHAR(10));
PRINT 'État : ' + CAST(ERROR_STATE() AS NVARCHAR(10));
PRINT 'Ligne d''erreur : ' + CAST(ERROR_LINE() AS NVARCHAR(10));
END CATCH;
END;
GO
```
Cet exemple montre comment capturer une erreur dans un bloc TRY-CATCH et afficher les détails de l'erreur.

Exemple 3 : Capture de l'erreur avec transaction


```sql
BEGIN TRANSACTION;
BEGIN TRY
INSERT INTO Employes (no, nom, prenom)
VALUES (999, 'Toto', 'Titi');
INSERT INTO Employes (no, nom, prenom)
VALUES (888, NULL, 'Tata');

Vous aimerez peut-être aussi