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 :

Gestion des erreurs dans une classe


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    197
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 197
    Points : 64
    Points
    64
    Par défaut Gestion des erreurs dans une classe
    Bonjour,

    J'ai plusieurs classe qui me permettent de récuperer mes données cependant, j'ai un soucis : la gestion des erreurs : Connexion à la BDD ... comment gérer cela ?

    Je souhaitais faire un try catch, puis dans le catch, stocker l'erreur en session, redirigé l'utilisateur sur une page permettant d'afficher les erreurs..

    Problème : L'objet session est incunnu dans ma classe.

    Des idées ?

    Merci de votre aide

  2. #2
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Fait plutôt un log dans un fichier texte.

    ça permet de faire le fichier et d'acrier dedans, sacahnt que tu enrichi la varaible FichierLogs avec un chemin absolu vers le fichier sur le serveur et MsgError qui vient en paramettre d'une fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim oWriter As New StreamWriter(FichierLogs, True)
    oWriter.WriteLine(DateTime.Now.ToString & " : " & MsgError)
    oWriter.Close()
    Pour capter l'erreur, je fais comme ça avec une classe maison.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Throw New AppExecption("Chaine de connexion " & idChainCo & " introuvable")
    Si ça peut t'aider.

    Kenavo
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  3. #3
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    197
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 197
    Points : 64
    Points
    64
    Par défaut
    Et tu gères l'affichage des erreurs (pour l'utilisateur) comment ? En fait c'est l'affichage coté utilisateur qui je sais pas trop comment géré...

  4. #4
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Ben dans mon cas, je gère pas.

    Mais partant du principe que tu capte une exception, tu peux rajouter des fonctions dans la classe et faire une redirection vers une page et afficher le message d'erreur.

    Kenavo
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  5. #5
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Je suis comme Zoofy, je ne remonte pas l'exception jusqu'à l'utilisateur car je ne suis pas sûr qu'un StackOverfFlowException ou SqlConnexionException lui parle beaucoup.

    Par contre, il est tout a fait envisageable d'utiliser le bloc catch ex as exception pour faire une redirection vers une page unique d'erreur dans laquelle tu affiches "une erreur s'est produite, nous vous prions..." ou le message d'erreur stocké dans une variable si tu le souhaites.

  6. #6
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    197
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 197
    Points : 64
    Points
    64
    Par défaut
    Voila c'est justement ça que je souhaite faire, mais j'y arrive pas.

    J'ai ma classe qui se connecte et je souhaite redirigé dans le CATCH en stockant le message dans une variable de sessions mais le "Session" n'est pas reconnu, je comprends pas

  7. #7
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    197
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 197
    Points : 64
    Points
    64
    Par défaut
    Bon, j'avance :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            Try
     
            Catch Ex As Exception
                Throw New Exception("Impossible de charger les tiers.")
                Response.Redirect("D_Message.aspx", True)
            End Try
    Probleme, j'ai l'exception qui s'affiche mais pas de redirection vers D_Message.aspx

  8. #8
    Rédacteur

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 744
    Points : 1 352
    Points
    1 352
    Par défaut
    Je te conseil de travailler autremenent, je m'explique

    Dans ton App_code tu crés une classe que l'on va appeller BasePage.vb
    Cette classe hérite de System.web.UI.Page

    tu overrides la méthode onError() pour qu'elle :
    1. Stock l'exception dans la session, pour récupérer la derniere erreur tu utilises Server.getLastError()
    2. tu fais un redirect vers ta page d'erreur
    Ensuite toutes les pages aspx que tu crés doivent hériter de BasePage.

    A partir de là sans écrire la moindre ligne de code supplémentaire toutes les exeptions non interceptées provoqueront une redirection vers ta page d'erreur avec l'exception dans la Session ....

    Merci l'héritage

    Ludovic.

    PS : J'ai fait un articles expliquant cela que je mettrai en ligne dès que je serai rédacteur sur développez.com (dans quelques jours).
    Envie de contribuer à la rubrique SharePoint ? Contactez moi par MP !

    SharePoint : http://sharepoint.developpez.com
    Mon site : http://lefortludovic.developpez.com
    Mon blog : http://www.consultpoint.net/blog

  9. #9
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    197
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 197
    Points : 64
    Points
    64
    Par défaut
    Pas mal comme méthode...

    Mais finalement, j'ai crée une classe qui recupere et traite les erreurs. Ca me va nickel. Merci à vous.

  10. #10
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Citation Envoyé par LefortLudovic
    Je te conseil de travailler autremenent, je m'explique

    Dans ton App_code tu crés une classe que l'on va appeller BasePage.vb
    Cette classe hérite de System.web.UI.Page

    tu overrides la méthode onError() pour qu'elle :
    1. Stock l'exception dans la session, pour récupérer la derniere erreur tu utilises Server.getLastError()
    2. tu fais un redirect vers ta page d'erreur
    Ensuite toutes les pages aspx que tu crés doivent hériter de BasePage.

    A partir de là sans écrire la moindre ligne de code supplémentaire toutes les exeptions non interceptées provoqueront une redirection vers ta page d'erreur avec l'exception dans la Session ....

    Merci l'héritage

    Ludovic.

    PS : J'ai fait un articles expliquant cela que je mettrai en ligne dès que je serai rédacteur sur développez.com (dans quelques jours).
    en effet, c'est trés simple et trés efficace, je n'y aurais pas pensé, merci beaucoup.
    Par contre, une question me taraude: mes pages héritent déja d'une classe qui me permet de faire un traitement dont j'ai besoin sur chaque page.
    Comment dans ce cas gerer la remontée des exceptions ?

  11. #11
    Rédacteur

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 744
    Points : 1 352
    Points
    1 352
    Par défaut
    Si tu ne veux pas que les erreurs passent par le OnError de la classe parentes il te suffit de re-overrider la méthode OnError dans ta page.
    Envie de contribuer à la rubrique SharePoint ? Contactez moi par MP !

    SharePoint : http://sharepoint.developpez.com
    Mon site : http://lefortludovic.developpez.com
    Mon blog : http://www.consultpoint.net/blog

Discussions similaires

  1. Gestion d'erreurs dans une classe
    Par a028762 dans le forum Langage
    Réponses: 4
    Dernier message: 10/12/2011, 11h50
  2. gestion des erreurs dans une transaction mysql
    Par ytoutou dans le forum Requêtes
    Réponses: 3
    Dernier message: 17/12/2010, 23h21
  3. Gestion des erreurs dans une boucle While
    Par Gregory.M dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/08/2008, 20h57
  4. Gestion des erreurs dans une requête "IF"
    Par tineighty dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 08/10/2007, 18h22
  5. [VB6] Gestion des erreurs dans une dll
    Par zimba-tm dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 02/08/2004, 11h20

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