2010-06-01 4 views
1

j'ai posté un peu d'aide ici: Avoiding try/catch hell in my web pagesdans mon Telerik Évitez try/enfer catch contrôle

J'ai ajouté un override OnError 'dans une classe de base commune de toutes mes pages, et peut confirmer que cela fonctionne correctement en mettant un point d'arrêt dans la fonction. Cependant, je reçois toujours une exception propageant au client, peu importe ce que je fais. Voici mon problème: 1) J'ai un contrôle Telerik Grid qui est mis à jour en fonction de la valeur d'un ComboBox. Si une exception se produit et que je l'attrape dans un bloc try/catch alors tout va bien. 2) Si je reçois une exception lorsque la ComboBox est modifiée mais qu'il n'y a AUCUNE utilisation d'un bloc try/catch, l'erreur est interceptée dans OnError. Cependant, maintenant je reçois une erreur PageRequestManagerServerErrorException qui apparaît dans la réponse Ajax du client (Javacript).

Une aide?

Répondre

1

Il peut y avoir plusieurs raisons pour lesquelles cela se produit. D'une part, il pourrait s'agir d'un problème avec le rendu côté client, ou il pourrait s'agir d'une requête AJAX provenant d'un panneau de mise à jour ou du RadAjaxPanel ... une façon de dire est d'accéder à l'événement endRequest de Sys.WebForms.PageRequestManager , dont il est question ici brièvement: http://encosia.com/2007/07/18/how-to-improve-aspnet-ajax-error-handling/

Ainsi, l'erreur est peut-être pas le cas dans cette zone de code qui a le bloc try/catch, mais pourrait être causée par quelque chose d'interne dans les processus Telerik ...

Pourriez-vous partager un code/balisage?

Merci.

+0

Parfait, le PageRequestManager dans JS fonctionne !! Je suis un peu confus maintenant: 1) Je remarque que mon OnError provoque une exception dans le JS, alors que l'exception est correctement affichée dans le client si j'utilise Page_Error. Je dois utiliser soit OnError ou Page_Error pour enregistrer les erreurs dans un fichier, mais pourquoi OnError change l'exception. 2) Je remarque que le message get_error(). Dans le JS inclut également le nom du type Exception. C'est un peu moche dans les erreurs affichées au client. Je ne vois aucune méthode qui exclut le type d'exception. Est le seul moyen d'écrire JS personnalisé pour supprimer le texte inutile? –

+0

1) Je serais surpris de voir une différence; Page_Error est le gestionnaire d'événement, alors que OnError est simplement la méthode qui lance l'événement ... Vous appelez toujours base.OnError (e); dedans? 2) l'analyse de chaînes de caractères; soit avec le framework MS ajax ou JQuery ou quelque chose. MS AJAX a une méthode String.StartsWith que vous pouvez utiliser pour vérifier certaines erreurs, puis sous-chaîne ou substr pour supprimer le texte .. Je sais, un peu maladroit ... peut-être des expressions régulières pourraient aider ici en fait ... –

Questions connexes