Les instructions d'exceptions en C# (C Sharp) sont au nombre de trois et sont un ajout au C d'origine :
- TRY ... CATCH ...
- TRY ... FINALLY ...
- THROW
TRY ... CATCH ...
L'instruction «TRY» de C Sharp permet d'effectuer la gestion d'une erreur aussi simplement qu'en Delphi par exemple. On encapsule les instructions à risque entre les mots réservés «TRY» et «CATCH», puis on met le traitement d'erreur après les mots réservés «CATCH». Voici donc sa syntaxe :
try { instructionarisque } catch { instruction_exécuté_si_exception } |
Il est pratique de pouvoir effectuer l'interception d'erreur, toutefois il peut arriver que plusieurs situation d'erreur se produise, de se fait, il est essentiel de pouvoir identifier, de laquelle il s'agit. C# (C Sharp), à la manière des vieux interpréteurs Basic comme BASICA et GWBASIC permet d'effectuer une branchement sur les instructions souhaité. Voici enfin sa syntaxe situer dans la zone de traitement d'exception :
try { instructionarisque } catch(codeerreur1 objeterreur1) { instructionexception1; } catch(codeerreur2 objeterreur2) { instructionexception2; } |
Exemple
Cet exemple permet de montrer un bloc d'instruction avec une gestion des exceptions :
Essayer maintenant !
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
-
- namespace CatchSamples
- {
- class Program
- {
- static void Main(string[] args)
- {
- try {
- Console.WriteLine("Exécution du programme");
- } catch(Exception e) {
- Console.WriteLine(e.Message.ToString());
- Environment.Exit(0);
- }
- }
- }
- }
on obtiendra le résultat suivant :
Exécution du programme |
TRY ... FINALLY ...
Le déclenchement d'exception est parfois dangereux lorsqu'on pense au fait qu'on peut gaspiller des ressources mémoire ou oublier d'arrêter un périphérique par exemple. Il existe une instruction permettant de s'assurer que quoi qu'il arrive un bloc d'instruction sera exécuté même si des problèmes auront lieu. Cette instruction c'est «TRY» et «FINALLY». Contrairement aux instructions «TRY CATCH» s'exécutant que si une exception à lieu, le zone «FINALLY» est assurément exécuté! Voici donc sa syntaxe :
try { instructionpeutetreexecuter; } finally { instruction_exécuté_a_la_fin_meme_si_exception; } |
Exemple
Cet exemple permet de montrer l'exécution classique :
Essayer maintenant !
on obtiendra le résultat suivant :
Peut-être exécuté !Sûrement exécuté !
THROW
Naturellement, une exception peut être déclenché par programmation. L'instruction permettant d'effectuer cette opération est «throw new». Voici enfin les deux syntaxes autorisé :
throw new instancedexception(); |
ou
throw new instancedexception(message); |
Exemple
Cet exemple permet de montrer l'exécution classique :
Essayer maintenant !
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
-
- namespace ThrowSamples
- {
- class Program
- {
- static void Main(string[] args)
- {
- try {
- throw new Exception();
- } catch(Exception e) {
- Console.WriteLine("Exception exécuté !");
- } finally {
- Console.WriteLine("Sûrement exécuté !");
- }
- }
- }
- }
on obtiendra le résultat suivant :
Exception exécuté !Sûrement exécuté !