Afficher Personnalisé Message D'Exception

J'essaie de montrer une exception personnalisée message tout en préservant l'exception interne.

Voici mon exemple de code:

public class Class1
{
public Class1()
{
    try
    {
        throw new WebException("Initial Exception");
    }
    catch (WebException we)
    {
        throw new myException("Custom Message", we);
    }
}
}

public class myException : WebException
{
public myException(string msg, WebException e) : base(msg, e) { }
}

Lorsque j'exécute ce code, il m'indique le message personnalisé dans le débogueur:
Afficher Personnalisé Message D'Exception

mais envoie toujours le innerexception message au client:
Afficher Personnalisé Message D'Exception

Ce que je fais mal ici? Comment faire pour préserver l'exception interne tout en montrant mon propre message personnalisé?

  • Notez qu'il est toujours à l'affiche personnalisé de votre myException de l'information. Je devine que c'est une "fonctionnalité" de ASP.NET s'serveur qui montre l'intérieur de l'exception d'abord les données de la source de l'origine de ce problème. J'imagine, peut-être, que ce soit pour la commodité du côté serveur de débogage. Éventuellement il y a un serveur option de configuration pour contrôler cela, mais je ne sais pas.
  • "Vous ne devez pas définir de nouvelles classes d'exception dérivé de ApplicationException; Exception pour l'utilisation à la place. En outre, vous ne devez pas écrire du code qui attire ApplicationException." - Microsoft
  • Aussi, je pense que vous pouvez peut-être vouloir throw; plutôt que throw e; comme Exception catch gestionnaire - ça va préserver la pile des informations, tout ce que vous avez ne sera pas.
  • Je suis juste en utilisant ce code une un exemple, je n'ai pas de chance avec throw; parce que je veux préserver l'exception initiale
InformationsquelleAutor Greg | 2012-05-10