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:
dennoch sendet die innerexception-Nachricht an den client:
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
Ich bin nur mit diesem code, ein Beispiel, ich hatte kein Glück mit
"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 AusnahmeInformationsquelleAutor Greg | 2012-05-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem Weg zum anpassen der Nachricht, die der Benutzer sieht, um eine benutzerdefinierte Fehlerseite angezeigt.
http://support.microsoft.com/kb/306355
InformationsquelleAutor Ben
Ich vermute, es ist, weil der ApplicationException nicht effektiv gehandhabt werden und der catch-block eine exception wirft, die dann abgeholt wird als Basis-Exception. Der debugger ist dann die Auflistung beide Ausnahmen.
Ich denke das wird sich geben, das Verhalten, die Sie sehen nach (den ich geschrieben habe als console-app)
InformationsquelleAutor joocer