c exception handling tutorial with code examples
La gestion des exceptions est une méthode permettant de gérer les erreurs qui peuvent survenir lors de l'exécution d'un programme. Ce didacticiel explique la gestion des exceptions en C # avec des exemples de code:
convertisseur youtube en mp4 téléchargement gratuit version complète
La gestion des exceptions est utilisée pour s'assurer que le flux du programme se poursuit même en cas d'erreur d'exécution. Les exceptions sont les objets qui sont lancés lors de la rencontre d'une erreur d'exécution.
Si les exceptions ne sont pas gérées, C # produira un message d'exception et mettra fin au programme, c'est là que la gestion des exceptions entre en scène.
=> Lisez le guide C # pour les débutants ici
Ce que vous apprendrez:
- Quelles sont les exceptions?
- Mots clés pour la gestion des exceptions
- Classes d'exception présentes en C #
- Gestion des exceptions en C #
- Conclusion
- lecture recommandée
Quelles sont les exceptions?
Les exceptions sont des erreurs sans précédent qui peuvent se produire dans votre programme pendant l'exécution. La plupart du temps, les programmeurs peuvent facilement détecter certaines des erreurs telles que la validation ou la vérification des valeurs nulles ou lors de la vérification de certaines valeurs.
Mais il y a certains moments où nous ne pouvons pas prévoir quoi ou quand une erreur apparaîtra. Par exemple, disons que je recherche un fichier à un emplacement. Mon programme fonctionnera parfaitement jusqu'à ce que le fichier soit présent et si le fichier est supprimé d'une manière ou d'une autre, mon programme générera une erreur.
Les exceptions ne se produisent pas régulièrement, mais peuvent toujours se produire et vous voudrez toujours les gérer avec soin. Pour les gérer, nous utilisons la gestion des exceptions.
Chaque fois qu'une erreur se produit, nous disons qu'elle est lancée, «jeté» est un objet de System.Exception classe en C #. Le System.Exception class propose différentes méthodes et propriétés qui donnent des détails sur l'erreur que votre programme vient de rencontrer.
Comme la propriété de trace de pile qui fournit la pile pour laquelle le problème s'est produit ou la propriété Message qui fournit une description de l'exception.
Mots clés pour la gestion des exceptions
Les exceptions offrent un processus pour contrôler une certaine partie du programme de sorte que même s'il y a une exception dans cette partie, alors le contrôle du programme est transféré à une autre partie du programme. En C #, la gestion des exceptions est essentiellement construite autour de quatre mots clés: lancer, essayer, attraper et enfin .
mon entretien SQL questions et réponses pdf
lancer
Comme nous l'avons déjà mentionné, throw est un objet de System.Exception classe dans le C #. Il permet au programme de lancer une erreur chaque fois qu'il en rencontre une.
essayer
Try block englobe le bloc du code qui peut provoquer la levée d'une exception par le programme. Il est suivi d'un ou plusieurs blocs catch.
capture
Lorsque le bloc try rencontre une exception, il fournit le contrôle au bloc catch pour intercepter l'exception. Le bloc catch peut également contenir un ensemble de codes que le programme doit exécuter en cas d'exception ou il peut simplement intercepter l'exception et ne rien faire selon le scénario et les exigences.
finalement
Le dernier bloc est utilisé pour exécuter un extrait de code ou une instruction particulière, quelle que soit l'occurrence d'une exception. Enfin, le bloc est toujours exécuté, et il peut être exécuté juste après le bloc essayant si le programme ne trouve aucune exception ou il peut être exécuté après le bloc catch une fois que le programme a détecté une exception.
Classes d'exception présentes en C #
Toutes les exceptions dans le C # sont dérivées directement ou indirectement du System.Exception classer.
Examinons brièvement certaines des exceptions les plus courantes:
- System.IO.IOException: Il gère toutes les erreurs liées aux entrées et aux sorties.
- System.DividedByZeroException: Gère l'erreur générée lorsqu'un nombre est divisé par zéro.
- System.NullReferenceException : Gère toute erreur pouvant survenir lorsqu'un objet nul est référencé.
- System.IndexOutOfRangeException: Gère l'erreur générée lorsqu'un programme tente d'accéder à un index hors de portée du tableau.
- System.OutOfMemoryException: Gère l'erreur générée en raison d'une présence de mémoire insuffisante.
Gestion des exceptions en C #
C # a une solution très bien définie pour gérer tout type d'exception qui peut se produire à l'aide du bloc try and catch. En utilisant ce bloc, l'instruction principale du programme peut être séparée des autres instructions.
Exemple:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string[] args) { try { File.OpenRead('InvalidFile'); } catch (FileNotFoundException ex) { Console.WriteLine(ex.ToString()); } Console.ReadLine(); } } }
Dans l'exemple ci-dessus, nous avons inclus notre code pour ouvrir un fichier sous le bloc try. Comme nous n'avons fourni aucun chemin de fichier valide, le code devrait générer une erreur. Maintenant, nous avons détecté l'erreur dans notre bloc catch. Si le fichier n'existe pas dans le chemin de fichier donné, le code lèvera une FileNotFoundException.
Cette exception sera interceptée par le bloc catch où nous avons déjà défini l'exception attendue. Maintenant, imaginons si notre code lève une autre exception, autre que celle que nous avons déjà définie, alors notre bloc ne pourra pas l'attraper. Pour intercepter toute exception générique, nous ajouterons un autre bloc catch.
Jetons un œil à notre code mis à jour:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string[] args) { try { File.OpenRead('InvalidFile'); } catch (FileNotFoundException ex) { Console.WriteLine(ex.ToString()); } catch (Exception e) { Console.WriteLine(e.ToString()); } Console.ReadLine(); } } }
Ce bloc catch générique sera capable de capturer toutes les exceptions qui peuvent être levées à l'intérieur du bloc try. Maintenant, ajoutons également un bloc finally pour terminer cela. Pour simplifier, imprimons simplement un message en utilisant le bloc finally.
oracle sql interview questions et réponses pdf
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string[] args) { try { File.OpenRead('InvalidFile'); } catch (FileNotFoundException ex) { Console.WriteLine(ex.ToString()); } catch (Exception e) { Console.WriteLine(e.ToString()); } finally { Console.WriteLine('Finally block executed'); } Console.ReadLine(); } } }
Ici, nous venons d'ajouter le bloc finally avec un message simple. Vous pouvez également ajouter des instructions personnalisées dans le bloc. Mais la structure globale du programme restera similaire à celle affichée ici.
Le bloc Enfin sera toujours exécuté, qu'il y ait ou non une exception. Le programme démarrera à partir du bloc try et se déplacera ensuite directement vers le bloc finally s'il n'y a pas d'erreurs / exceptions. S'il rencontre une exception, il se déplacera d'abord vers catch, puis exécutera le bloc final.
Y a-t-il une condition dans laquelle le bloc finally ne sera pas exécuté?
Comme son nom l'indique, le bloc final est exécuté à la fin et est le bloc final du code qui sera exécuté. Enfin, le bloc s'exécutera toujours lorsque l'application est en cours d'exécution. Le seul moment où le bloc finally ne s'exécutera pas est lorsque l'application se bloque ou est intentionnellement supprimée à l'aide de la commande process.
Conclusion
Si les exceptions ne sont pas gérées correctement, elles provoqueront des erreurs dans votre programme. Si vous n’avez pas utilisé de blocs try / catch dans votre code, votre programme s'interrompra avec un message indiquant l’exception. Pour un utilisateur générique, il sera très difficile de retracer l'erreur jusqu'au code source et de la résoudre.
Par conséquent, il est toujours recommandé de fournir une gestion des exceptions dans votre programme.
Exemple de code
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string[] args) { try { File.OpenRead('InvalidFile'); } catch (FileNotFoundException ex) { Console.WriteLine(ex.ToString()); } catch (Exception e) { Console.WriteLine(e.ToString()); } finally { Console.WriteLine('Finally block executed'); } Console.ReadLine(); } } }
=> Voir notre série complète de formations C # ici
lecture recommandée
- Tutoriel sur les fonctions / méthodes C # avec des exemples de code
- Tutoriel Python DateTime avec des exemples
- Tutoriel SVN: Gestion du code source à l'aide de Subversion
- Tutoriel C # String - Méthodes de chaîne avec des exemples de code
- Gestion des exceptions en C ++
- Tutoriel Tortoise SVN: Révisions dans le référentiel de code
- Didacticiel AWS CodeBuild: extraction de code à partir de Maven Build
- Comment gérer l'exception dans les scripts SoapUI Groovy - Tutoriel SoapUI # 11