Accueil > > > EMPÊCHER LES ERREURS DES USERSCONTROLS DE FAIRE PLANTER TOUTE LA PAGE
EMPÊCHER LES ERREURS DES USERSCONTROLS DE FAIRE PLANTER TOUTE LA PAGE
Information sur la source
Description
Ce code fait la même chose (en mieux :p) que cette source de jesusonline : http://www.aspfr.com/codes/EVITER-ERREURS-USERCONT ROLS-ARRETENT-FONCTIONNEMENT-PAGE_36510.aspx, bien que l'approche soit radicalement différente. Tout tient en fait dans une des méthodes de la classe Page : ProcessRequest(HttpContext context) J'ai mis dans le Zip un exemple : une page avec 3 UserControls et un bouton pour faire lancer une exception dans un des UserControls.
Source
- // J'ai une liste des UsersControls à charger qui se trouve dans une variable de sessions : Session["Ucs"]
- // On va utiliser cette liste pour rechercher quel est l'UC qui cause l'erreur
- // Le contenu de la méthode ProcessRequest(HttpContext context) :
-
- public override void ProcessRequest(HttpContext context)
- {
-
- // dans le ProcessRequest, on attrappe toutes les exceptions
- try
- {
- base.ProcessRequest(context);
- }
- catch (Exception ex)
- {
- // on recheches dans la StackTrace de l'exception quel est l'usercontrol qui apparait
- string UcToRemove = "";
- foreach (string item in (System.Collections.Generic.List<string>)Session["Ucs"])
- {
- if (ex.InnerException.StackTrace.Contains(item.Replace(".ascx","")))
- {
- // si on a trouvé l'UserControl qui cause l'erreur, on note son nom
- UcToRemove = item;
- }
- }
- if (UcToRemove != "")
- {
- // ensuite on l'enlève de la liste des UC à charger
- // donc, plus aucun bug :D
- ((System.Collections.Generic.List<string>)Session["Ucs"]).Remove(UcToRemove);
-
- // on redirige la page sur elle même pour la recharger entièrement
- // mais sans l'UC qui ne marche pas :)
- System.Web.HttpContext.Current.Response.Redirect(System.Web.HttpContext.Current.Request.Url.ToString());
- }
- else
- {
- throw;
- }
- }
// J'ai une liste des UsersControls à charger qui se trouve dans une variable de sessions : Session["Ucs"]
// On va utiliser cette liste pour rechercher quel est l'UC qui cause l'erreur
// Le contenu de la méthode ProcessRequest(HttpContext context) :
public override void ProcessRequest(HttpContext context)
{
// dans le ProcessRequest, on attrappe toutes les exceptions
try
{
base.ProcessRequest(context);
}
catch (Exception ex)
{
// on recheches dans la StackTrace de l'exception quel est l'usercontrol qui apparait
string UcToRemove = "";
foreach (string item in (System.Collections.Generic.List<string>)Session["Ucs"])
{
if (ex.InnerException.StackTrace.Contains(item.Replace(".ascx","")))
{
// si on a trouvé l'UserControl qui cause l'erreur, on note son nom
UcToRemove = item;
}
}
if (UcToRemove != "")
{
// ensuite on l'enlève de la liste des UC à charger
// donc, plus aucun bug :D
((System.Collections.Generic.List<string>)Session["Ucs"]).Remove(UcToRemove);
// on redirige la page sur elle même pour la recharger entièrement
// mais sans l'UC qui ne marche pas :)
System.Web.HttpContext.Current.Response.Redirect(System.Web.HttpContext.Current.Request.Url.ToString());
}
else
{
throw;
}
}
Conclusion
Je n'ai pas encore trouvé de moyen de contourner cette méthode, mais il doit sans doute y en avoir...
Si il y en a, n'hésitez pas, les commentaires sont là pour ça :p
Historique
- 26 mars 2006 20:19:57 :
- orthographe...
- 27 mars 2006 17:11:11 :
- ZIP
- 29 mars 2006 15:08:23 :
- ZIP (bis)
- 03 avril 2006 22:31:29 :
- ZIP !
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Erreur 404 [ par charlix ]
Bonjour,Comment faire pour changer la page 404 en fonction du repertoire dans lequel on est.Pour l'application, l'aide est dans uhn repertoire a part.
Échec de Server.CreateObject [ par YounB ]
J'ai installé PWS 4.0 sous Windows98 S.E,et j'ai cette ... de page d'erreur qui s'affiche a chaque fois que j'ai une page qui contient:[Server.CreateO
erreur d'automation en ASP [ par patfac1 ]
Je suis en train de me mettre à l'ASP ;-) alors soyez pas moqueurs :DJ'ai fait une page , je l'heberge sur mon serveur local ( IIS de winXP pro ) et
Code d'erreur '800a01a8' dans une page ASP. [ par Noro ]
Lors de l'execution d'un vbscript sur une page ASP, où j'essaye d'afficher les informations de la requête dans des zones de texte. par exemple:documen
ASP et Exception [ par toto0101 ]
J'ai cette erreur en ASP"error '80020009' Une exception s'est produite. "L'erreur se trouve dans ces lignes mais je ne vois pas ou, si quelqu'un pourr
Erreur Timeout : message personalisée ? [ par DataJim ]
BonjourJe souhaite modifier le message "Pages ASP error 'ASP 0113' Délai d'exécution du script dépassé "pour mettre un message d'erreur personalisé.So
Message d'erreur [ par LostWorld ]
Salut, Je débute en ASP (suis webdesigner à la base) et il parait que "Option explicit" est quelque chose de vachement conseillé. Moi je veux bien l'u
pb sondage!!!! [ par ronando ]
J'ai un pb avec un sondage...tout ce passe bien lorsque celui ci est inserer ds une page HTML mais des qu'il est dans une page ASP il bug ..avec comme
Erreur sur une page html [ par loufi66 ]
J'ai tapé un script (html,asp et vbscript) et lorsque je lance la page, je reçois un message d'erreur.Erreur de compilation Microsoft VBScript erreur
Récupération des erreurs [ par Benz ]
Bonjour,J'aimarais savoir s'il existe une fonction qui permet de récupérer n'importe quel type d'erreur.J'ai placé dans en haut de ma page :On Error
|
Derniers Blogs
TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOURTECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOUR par ROMELARD Fabrice
Après un retour sur l'histoire des TechDays de Paris et le fait que ce soit le plus gros event MS au monde (du fait de sa gratuité), le président de MS France (Eric Boustoullier) a fait une présentation de la vision Microsoft pour les années à venir...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice CRéATION D'UNE BASE DE DONNéE SOUS SQL AZURECRéATION D'UNE BASE DE DONNéE SOUS SQL AZURE par junarnoalg
Sans rentrer dans les détails, je me propose ici de faire un rapide tour de ce que propose SQL Azure.
SQL Azure est avant tout un service d'hébergement de base de données relationnelles construit sur SQL Server. Il permet aux entreprises d...
Cliquez pour lire la suite de l'article par junarnoalg TECHDAYS PARIS 2010 : LES SERVICES D'APPLICATIONS DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LES SERVICES D'APPLICATIONS DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Xavier Moreels et Julien Bakmezdjian Ce sujet est lié au partage des applications comme services dans SharePoint 2010, ceci représente la possibilité de créer sa propre application qui sera utilisable comme ceux en standard : Search...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
ETIQUETTE FLASHETIQUETTE FLASH par dorianr59
Cliquez pour lire la suite par dorianr59
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|