Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Langue C

Maîtriser la gestion d'exceptions en C# : stratégies et bonnes pratiques

Une exception est un problème survenant pendant l'exécution. En C#, c'est une réponse à une circonstance exceptionnelle (ex: division par zéro).

Les exceptions permettent de transférer le contrôle d'une partie du programme à une autre. La gestion repose sur quatre mots-clés : try, catch, finally, throw.

Syntaxe

try
{
    // code pouvant lever exception
}
catch (ExceptionType1 e1)
{
    // traitement
}
catch (ExceptionType2 e2)
{
    // traitement
}
finally
{
    // code toujours exécuté
}

Plusieurs catch pour différents types d'exceptions.

Hiérarchie des classes d'exception

Toutes dérivent de System.Exception :

Exceptions système courantes

Classe Description
IOExceptionErreurs E/S
IndexOutOfRangeExceptionIndex tableau hors limites
NullReferenceExceptionRéférence null déréférencée
DivideByZeroExceptionDivision par zéro
InvalidCastExceptionErreur de cast
OutOfMemoryExceptionMémoire insuffisante
StackOverflowExceptionDépassement pile

Gestion des exceptions

Séparation code principal / gestion erreurs via try/catch/finally.

Exemple : division par zéro

using System;

namespace GestionErreurs
{
    class DivisionNombres
    {
        int resultat;
        
        public DivisionNombres() { resultat = 0; }
        
        public void Diviser(int num1, int num2)
        {
            try
            {
                resultat = num1 / num2;
            }
            catch (DivideByZeroException e)
            {
                Console.WriteLine("Exception interceptée : {0}", e);
            }
            finally
            {
                Console.WriteLine("Résultat : {0}", resultat);
            }
        }
        
        static void Main(string[] args)
        {
            DivisionNombres d = new DivisionNombres();
            d.Diviser(25, 0);
            Console.ReadKey();
        }
    }
}

Résultat :

Exception interceptée : System.DivideByZeroException: Attempted to divide by zero.
Résultat : 0

Exceptions personnalisées

Dérivez de Exception :


public class TemperatureNulleException : Exception
{
    public TemperatureNulleException(string message) : base(message) { }
}

public class Temperature
{
    int temperature = 0;
    public void AfficherTemp()
    {
        if (temperature == 0)
            throw new TemperatureNulleException("Température nulle détectée");
        else
            Console.WriteLine("Température : {0}", temperature);
    }
}

Relancer une exception


catch (Exception e)
{
    // traitement...
    throw; // relance l'exception originale
}

Langue C

  1. Maîtriser les directives using C# : Imports, alias et directives static
  2. Gestion des fichiers en C : Maîtriser les E/S avec fopen, fprintf, fread et fseek
  3. Maîtriser la gestion d'exceptions Python : try, except, else et finally expliqués
  4. Maîtriser la gestion d'exceptions Java : try, catch, finally, throw et throws expliqués
  5. Maîtriser la gestion d'exceptions en C++ : Exemples pratiques try, catch, throw
  6. Maîtriser la gestion d'exceptions Python : utiliser try, except, finally et raise efficacement
  7. Maîtriser la gestion des signaux en C++ : Interruption sécurisée et terminaison propre du programme
  8. Système de modules Java 9 : Création, link-time et images d'exécution personnalisées
  9. PLC vs DCS : choisir le bon système d'automatisation