Gestion des exceptions en C#
Nous ne pouvons pas nous attendre à ce qu'un utilisateur saisisse les informations correctes à tout moment. Cependant, si une entrée incorrecte ou inattendue n'est pas gérée correctement, l'ensemble du code pourrait planter ou suivre une boucle sans fin. Il s'agit d'un problème qui commence lors de l'exécution du programme en raison de conditions ou d'entrées inattendues. Par exemple, le résultat est infini lorsqu’un nombre est divisé par zéro. La gestion des exceptions est le moyen d'indiquer au programme de passer au bloc de code suivant ou de fournir le résultat défini dans certaines situations.
Mots clés de la gestion des exceptions en C#
La gestion des exceptions peut être effectuée avec moins de quatre mots-clés.
- Try : Le bloc try définit le type d'exception à gérer. C'est là que l'exception serait interceptée. Il sera toujours associé à un bloc catch.
- Catch : Une fois que le bloc try a défini le type et obtenu une exception lors de l'exécution, le bloc catch confirmera le type de gestionnaire d'exceptions à utiliser. Ce bloc déterminera également où l'exception doit être gérée. Comme l'indique le mot-clé, c'est comme attraper l'exception.
- Enfin : Ce bloc contient un ensemble d'instructions. Quelle que soit l'exception levée, les instructions définies dans le bloc final seront toujours exécutées.
- Throw : Lorsqu'une exception est interceptée, le mot-clé throw est utilisé pour afficher l'exception interceptée.
Vous pouvez éviter bien des tracas au logiciel ou à votre code en définissant le gestionnaire d'exceptions. C'est une bonne pratique de définir un gestionnaire d'exceptions partout où il existe une exception possible.
Syntaxe :
Chaque fois qu'une exception est levée, une méthode déclarée intercepte l'exception à l'aide du mot-clé try and catch. Nous devons placer cette combinaison du côté du code, une exception est attendue. Ces codes sont appelés code protégé. Vous pouvez également définir plusieurs mots-clés catch pour un mot-clé try. À la fin du contenu, la dernière partie du code sera exécutée et cela sera exécuté qu'une exception soit levée ou non.
Code :
try { //Define the statement that could cause an exception. } Catch(ExceptionName secondException) { //error handling code } Finally { //define the statement that will be executed }
Comment fonctionne la gestion des exceptions en C# ?
Il existe de nombreuses classes prédéfinies pour gérer l'exception. Le bloc try couvre la partie du code qui pourrait lever une exception et catch confirme quoi faire lorsqu'une exception est interceptée. La dernière partie du bloc définit ce qui doit être fait, que l'exception soit détectée ou non et la partie throw affiche le message le cas échéant.
Classes d'exceptions en C#
Il existe de nombreuses classes disponibles en C# grâce auxquelles les exceptions peuvent être représentées. Toutes les classes sont dérivées de la classe principale appelée System. Exception. Il existe peu de classes également dérivées de System.ApplicationException et System.SystemException.
Exemples de classes d'exception en C#
Les exceptions sont dérivées du système. Classe d'exception. Voici la liste des classes d'exceptions courantes C#.
|
Description | ||||||||||||
System.DivideByZeroException | gère l'erreur lorsque vous essayez de diviser un nombre par zéro. | ||||||||||||
System.NullReferenceException | gère l'erreur lors de la référence à un objet qui n'existe pas. | ||||||||||||
System.InvalidCastException | gère l'erreur lors d'une tentative de diffusion non valide. | ||||||||||||
System.IO.IOException | Toutes les erreurs d'entrée-sortie sont gérées. | ||||||||||||
System.FieldAccessException | Lorsque vous essayez d'accéder à une classe non autorisée |
1. C# try/catch
Exception handling is done by try and catches block in C#. The try block in C# is used to place the code that may throw an exception. The exception is handled by the catch block.
C# example without try/catch
Code:
using System; public class exceptionhandling { public static void Main(string[] args) { int a = 10; int b = 0; int x = a/b; //we are trying to divide the number with zero Console.WriteLine("other part of the code"); } }
Output:
C# try/catch example
Code
using System; public class ExExample { public static void Main(string[] args) { try { int a = 10; int b = 0; int x = a / b; } catch (Exception e) { Console.WriteLine(e); } Console.WriteLine("Rest of the code"); } }
Output:
Use of Exception Classes in C# finally
It will show you the message regardless the exception is caught.
Code
using System; public class Exceptionhandling { public static void Main(string[] args) { try { int x = 5; int y= 0; int z = x / y; } catch (Exception obj) { Console.WriteLine(obj); } finally { Console.WriteLine("Time to execute finally block"); } Console.WriteLine("Other part of the code"); } }
Output:
1. C# finally example if Exception is not handled
Code
using System; public class ExceptionHandling { public static void Main(string[] args) { try { int p = 6; int q = 0; int r= p/q; } catch (NullReferenceException nullObject) { Console.WriteLine(nullObject); } finally { Console.WriteLine("Exception not handled. Now Finally section will be executed"); } Console.WriteLine("Other part of the code"); } }
Output:
2. C# user-defined Exception
The not only system defined, but we can also set our own exception. However, we need to inherit the code in order to get this done.
Code
using System; public class userdefinedInvalidAge : Exception { public userdefinedInvalidAge (String errorMessage) : base(errorMessage) { } } public class TestUserDefinedException { static void validateAge(int age) { if (age < 18) { throw new userdefinedInvalidAge("Sorry, Age must be greater than 18"); } } public static void Main(string[] args) { try { validateAge(12); } catch (userdefinedInvalidAge e) { Console.WriteLine(e); } Console.WriteLine("Rest of the code"); } }
Output:
Conclusion
At any place you think it might generate an error because of anything, exception handler should be used. It is essential that you use a catch statement and start from generic to a specific exception. Your entire software or code is at risk without proper exception handler.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Générateur de nombres aléatoires en C#
