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 :

[ASP .NET][VB] Gestion des erreurs non gérées


Sujet :

ASP.NET

  1. #1
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 306
    Points : 71
    Points
    71
    Par défaut [ASP .NET][VB] Gestion des erreurs non gérées
    Bonjour,

    J'un un site web en ASP .Net [VB] et j'aimerais faire une gestion des erreurs non gérées.
    L'idéal serait une redirection vers une page sur laquelle on pourrait voir l'erreur complète en interne avec un envoie de mail automatique, et en externe (sur le web) juste un envoie de mail.

    J'ai trouvé pas mal de chose sur le web, sois ils ne s'adaptent, soit il ne fonctionne de la manière dont je voudrais.

    L'idéal serait d'avoir une classe qui détecte n'importe quelle erreur et ainsi je pourrais faire le traitement désiré.

    Quelqu'un peut-il m'aider ?

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Tu peux faire ça dans le global.asax sur le Application_OnError

  3. #3
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 306
    Points : 71
    Points
    71
    Par défaut
    Oui mais je ne peux plus récuperer l'erreur complete après quand je redirige.

  4. #4
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    T'es sûr??
    Sinon, tu peux toujours la stocker qq part (session, DB ou autre)

  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
    NEPTUNE, un utilisateur du forum avait soumis une solution niquel pour ca.

    Tu crée une classe BasePage qui hérite de page et dans cette classe tu crées une fonction qui redéfinit l'événement On_Error.
    Ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Protected Overrides Sub OnError(ByVal e As System.EventArgs)
            Dim Ex As Exception = Server.GetLastError
            Session("Exception") = Ex
            Response.Redirect("~/Erreur.aspx")
    End Sub
    et dans ta page Erreur.aspx tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If not session("Exception") is nothing then
    ton traitement (mail, DB, etc.)
    End if
    chacune des pages de ton site doit hériter de BasePage, et aura donc toutes les caractéristiques d'une page (puisque BasePage hérite de page) mais tu ajoutes en plus ta fonctionnalité de traitement des erreurs.

    De plus, si tu souhaites envoyer un mail ou logger les erreurs, ca devient trés simple, tout est fait dans une classe...
    Ca te permet de plus d'afficher une page personnalisée à ton utilisateur et si ca ne traite pas l'erreur, ca ne bloque pas l'appli

    Les joies de l'OBJET , merci Neptune

  6. #6
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 306
    Points : 71
    Points
    71
    Par défaut
    C'est ce que j'utilise, cela fonctionne très bien sur les pages.
    Mais s'il y a une erreur dans un Module ou une autre classe, on ne peut pas detecter l'erreur car ces derniers ne peuvent pas hériter d'une classe.

    Comment faire dans ce cas ?

  7. #7
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Sauf erreur de ma part, si tu n'as pas catche ton erreur dans ton module, la page appelante va se faire remonter l'exception...

    Et donc, tu l'auras au niveau de la page ( a moins que ca soit en java ? )

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 62
    Points : 73
    Points
    73
    Par défaut
    bien sur que l'erreur remonte et tu gères dans tous les cas au niveau du Application_Error dans le global.asax.
    de plus je ne saurais que trop te conseiller d'utiliser l'enterprise library ExceptionHandling qui donne pas mal de methodes pour gérer au mieux les exceptions ... Par exemple comment dois réagir le systeme a tel ou tel type d'erreur ... Si c'est une session a expiré, je n'envoie pas de mail, si c'est un timeout j'envoie un mail, etc ...

Discussions similaires

  1. [.Net MVC]ViewModel Pattern et gestion des erreurs
    Par manu11 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 17/01/2010, 22h03
  2. Réponses: 7
    Dernier message: 13/10/2008, 16h22
  3. Réponses: 3
    Dernier message: 04/12/2007, 10h55
  4. [XSLT]Est ce qu'il y'a la gestion des erreur en xslt ?
    Par miloud dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 04/02/2004, 17h19
  5. [LG]gestion des erreurs
    Par frontin dans le forum Langage
    Réponses: 3
    Dernier message: 29/11/2003, 22h41

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