Zeigen Sie Benutzerdefinierte Exception

Ich versuche zu zeigen, eine eigene exception-Nachricht, während die Erhaltung der inneren Ausnahme.

Hier ist mein Beispielcode:

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) { }
}

Wenn ich diesen code ausführen, zeigt er mir die benutzerdefinierte Fehlermeldung im debugger:
Zeigen Sie Benutzerdefinierte Exception

dennoch sendet die innerexception-Nachricht an den client:
Zeigen Sie Benutzerdefinierte Exception

Was mache ich hier falsch? Wie kann ich die Erhaltung der inneren Ausnahme und zeigt meine eigenen Nachricht?

Beachten Sie, dass es immer noch zeigt Ihre benutzerdefinierten myException Informationen. Ich vermute, dies ist ein "feature" von ASP.NET's-server, zeigt die innere Ausnahme, die Daten zunächst als die Quelle, der Urheber des Problems. Ich kann mir vorstellen, vielleicht, dass dies für die Bequemlichkeit für server-side-debugging. Möglicherweise gibt es ein server-config-option, um diesen zu kontrollieren, aber ich weiß nicht.
"Sie sollten nicht für die Definition einer neuen Ausnahme-Klassen, die von ApplicationException; Exception statt. Darüber hinaus sollten Sie keinen code schreiben, der fängt ApplicationException." - Microsoft
Außerdem denke ich, dass Sie vielleicht wollen throw; eher als throw e; als Ihre Letzte Exception catch handler - Sie erhalten die stack-Informationen, während das, was Sie haben, nicht.
Ich bin nur mit diesem code, ein Beispiel, ich hatte kein Glück mit throw; weil ich immer noch wollen, um damit die ursprüngliche Ausnahme

InformationsquelleAutor Greg | 2012-05-10

Schreibe einen Kommentar