begin process at 2010 02 09 14:21:39
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > 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

Note :
Aucune note
Catégorie :Astuces Source .NET ( DotNet ) Classé sous :usercontrol, exception, erreur, empêcher, page Niveau :Initié Date de création :26/03/2006 Date de mise à jour :03/04/2006 22:31:28 Vu / téléchargé :11 865 / 179

Auteur : Nurgle

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note


 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

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 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

Source avec Zip AUTHENTIFICATION D'UTILISATEURS AVEC BASE DE DONNÉES

 Sources de la même categorie

Source avec Zip SÉRIALISER / DÉSÉRIALISER DES VARIABLES EN ASP par lejdu
CREATION D'UN AUTOCOMPLETE JQUERY AVEC UN CODE SOURCE ASP ET... par dedebis84
Source .NET (Dotnet) RÉCUPÉRER DES VALEURS D'UNE LIGNE DANS UN DATAGRID APRÈS AVO... par PascalCmoa
Source avec Zip Source avec une capture Source .NET (Dotnet) UN SEMBLANT DE MASTERPAGE POUR DES FICHIERS XSL par bizzard4
Source avec Zip CRÉATION DE RAPPORTS EXCEL DYNAMIQUE EN ASP par foliv57

 Sources en rapport avec celle ci

Source avec Zip Source .NET (Dotnet) GRIDVIEW DATE PICKER JAVASCRIPT par fredzool
Source avec Zip Source avec une capture Source .NET (Dotnet) PAGINATION CONTRÔLE REPEATER ASP.NET AVEC UN DATASET par fabienfs
Source .NET (Dotnet) LISTER TOUS LES CONTROLS D'UNE PAGE par Coolpix08
Source avec une capture Source .NET (Dotnet) USER CONTROL POUR AFFICHER LA DESCRIPTION D'UN PRODUIT par jesusonline
POUR QUE LA PAGE NE RESTE PAS DANS LE CACHE par Nix

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire


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


Nos sponsors


Appels d'offres

Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,718 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales