Getsuyodev, Programming is mainly used when constructing an application. Programming requires knowledge of application domains, algorithms, and programming language expertise. Programming can be developed in different logic based on developer knowledge.

POO – Exception interne et propriétés

Programmez en orienté objet en C Sharp



Objectif : Une exception dans .Net possède plusieurs attributs en plus de la chaîne de message. On se propose de construire un exemple utilisant l’instanciation d’une nouvelle exception dans le traitement d’une autre exception et de montrer qu’il est possible lors de l’interception, d’analyser finement la provenance de l’exception.

Rappel des propriétés de la classe Exception :

Question : 

Soit dans un classe Calculs, une méthode diviserPar qui intercepte une exception de division par zéro et relance dans le bloc du traitement de cette exception une autre exception interne :

  class  Calculs     {
     public void  diviserPar ( int  x )     {
      try
       {
         int  y  =  100  /  x ;
       }
       catch ( ArithmeticException e )
       {
         Console .WriteLine (">>> Exception : " +  e.Message );
         // on instancie et on relance une nouvelle exception de classe ApplicationException  :
         ApplicationException ex  =  new  ApplicationException ("ApplicationException créée" , e );    
        // on renseigne les propriétés de l'exception créée :
         ex.HelpLink  =  "https://www.getsuyodev.com";
         ex.Data[ "Infos" ]  =  "Calculs compromis.";
         ex.Data.Add ("avertissement" ,  "Abandonnez toutes les opérations.");
        // on lance l'exception instanciée et renseignée
        throw  ex ;
       }
     }
    }

Ecrire un programme permettant d’intercepter l’exception interne générée par la méthode diviserPar d’un objet de type Calculs et d’afficher les propriétés de cette exception interne comme suit :

using System;
using System.Collections;

class Calculs
{
public void diviserPar(int x)
{
try
{
int y = 100 / x;
}
catch (ArithmeticException e)
{
Console.WriteLine(">>> Exception : "+ e.Message);
// on instanciet et on relance une nouvelle exception :
ApplicationException ex = new ApplicationException("ApplicationException créée", e);// on renseigne sur l'exception inner.
ex.HelpLink = "https://www.getsuyodev.com";
ex.Data["Infos"] = "Calculs compromis.";
ex.Data.Add("avertissement", "Abandonnez toutes les opérations.");
throw ex;
}
}
}

class ApplicationXXX  
{
static void Main(string[ ] args)
{
int x = 0;
try
{
Calculs obj = new Calculs();
obj.diviserPar(x);
}
catch (Exception e)
{
// complétez le code ici
}
Console.ReadLine();
}
}

Comments are closed, but trackbacks and pingbacks are open.

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More