Ich verwende System.Windows.Forms.WebBrowser
, um eine Visual Studio-Startseite anzuzeigen. Es scheint jedoch, dass das Steuerelement alle Ausnahmen abfängt und behandelt, indem es sie stilllegt! Keine Notwendigkeit zu sagen, das ist ein sehr unglückliches Verhalten.Verhindern, dass das WebBrowser-Steuerelement Exceptions verschluckt
void webBrowserNavigating(object sender, WebBrowserNavigatingEventArgs e)
{
// WebBrowser.Navigating event handler
throw new Exception("OMG!");
}
Der obige Code wird die Navigation abbrechen und die Ausnahme verschlucken.
void webBrowserNavigating(object sender, WebBrowserNavigatingEventArgs e)
{
// WebBrowser.Navigating event handler
try
{
e.Cancel = true;
if (actions.ContainsKey(e.Url.ToString()))
{
actions[e.Url.ToString()].Invoke(e.Url, webBrowser.Document);
}
}
catch (Exception exception)
{
MessageBox.Show(exception.ToString());
}
}
Also, was ich zu tun (siehe oben) ist es, alle Ausnahmen fangen und einen Kasten Pop, das ist besser als leise versagt aber bei weitem noch nicht klar ideal. Ich möchte, dass die Ausnahme über den normalen Anwendungsfehlerpfad umgeleitet wird, sodass sie letztendlich nicht behandelt wird oder von der Anwendung vom Stamm aus gehandhabt wird.
Gibt es eine Möglichkeit, die WebBrowser
Kontrolle zu sagen, die Ausnahmen zu stoppen und sie nur die natürliche und erwartete Art und Weise weiterleiten? Oder gibt es einen hacky Weg, eine Ausnahme durch native Grenzen zu werfen?