IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[C#] Comment faire un Handler d'exception ? (pour éviter la répétition de try/catch)


Sujet :

ASP.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 31
    Points : 28
    Points
    28
    Par défaut [C#] Comment faire un Handler d'exception ? (pour éviter la répétition de try/catch)
    Bonjour, je travaille sur un projet en ASP.NET (Framework 2.0),

    Dans ma classe service (qui se contente d'appeller des Web Services),
    j'ai une multitude de méthodes, toutes constituées de la même façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public void GetBidule() {
    try {
    // Appel de la methode GetBidule() du WebService
    }
    catch(Exception exc) {
    // Gestion de l'exception
    }
    }
    Je trouve génant de recopier systematiquement le bloc try/catch.

    Existe-t-il un moyen de forcer l'exécution d'une méthode (un handler d'exception en quelque sorte) lors d'une exception, par exemple en écrivant quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    [MonHandlerDException]
    public void GetBidule() {
    // Appel de GetBidule() du WebService
    }
    Ou alors peut être en utilisant un mot clé spécial au niveau de classe.
    Ou encore avec certains paramètre du fichier web.config.
    Ou bien en utilisant des delegate.

    En tout cas, toutes les propositions sont les bienvenue.

    Merci de votre aide.

  2. #2
    Rédacteur

    Inscrit en
    Juin 2004
    Messages
    744
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Juin 2004
    Messages : 744
    Points : 1 352
    Points
    1 352
    Par défaut
    Tu peux le faire dans ton fichier Global.asax en overridant la méthode Application_Error()

    Ludovic,

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 31
    Points : 28
    Points
    28
    Par défaut
    Ce qui me gêne avec le global.asax, c'est que la méthode sera appelé systématiquement.
    Or je souhaite reserver mon handler à une classe particulière.

  4. #4
    Rédacteur

    Inscrit en
    Juin 2004
    Messages
    744
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Juin 2004
    Messages : 744
    Points : 1 352
    Points
    1 352
    Par défaut
    Je ne vois pas comment définir cela au niveau d'une seule classe. Désolé.

  5. #5
    Membre expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut
    Tu peux utiliser la reflection,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
           public void callMethod(string methodName)
            {
                try
                {
                    MethodInfo MyMethodInfo = this.GetType().GetMethod(methodName);
     
                    MyMethodInfo .Invoke(this, null);
     
                }
                catch (Exception e)
                {
     
               }
            }
     
           public void methodA()
            {
     
            }
     
           public void methodB()
            {
                    }
    les appels passeront par callMethod.

Discussions similaires

  1. Comment faire un cahier des charges pour un intranet
    Par jcayron dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 14/04/2009, 13h31
  2. comment faire assigner une expression à height pour FF
    Par ghou67 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 09/11/2007, 09h17
  3. Comment faire une capture d'écran pour envoyer sur le forum ?
    Par jlb59 dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 3
    Dernier message: 07/07/2007, 17h28
  4. Réponses: 7
    Dernier message: 02/01/2007, 17h22
  5. comment faire ma base de donnée pour un moteur de recherche
    Par HoB dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 04/05/2004, 15h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo