Verhindern, dass WebBrowser-Steuerelement schlucken Ausnahmen
-
09-06-2019 - |
Frage
Ich bin mit der System.Windows.Forms.WebBrowser
, um eine Ansicht a-la-Visual Studio-Startseite.Es scheint jedoch, als das Steuerelement abfangen und behandeln alle Ausnahmen, die von leise zu versenken!Keine Notwendigkeit zu sagen, das ist eine sehr unglückliche Verhalten.
void webBrowserNavigating(object sender, WebBrowserNavigatingEventArgs e)
{
// WebBrowser.Navigating event handler
throw new Exception("OMG!");
}
Der obige code Abbrechen der navigation und schlucken die Ausnahme.
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 tun (oben) alle Ausnahmen abfangen und pop-a-box, das ist besser, als still failing aber noch deutlich zu weit Weg vom ideal.Ich möchte die Umleitung der Ausnahme, durch die die normale Anwendung Fehler Weg, so dass es letztlich wird unbehandelt oder behandelt, indem die Anwendung von der Wurzel.
Gibt es eine Möglichkeit zu sagen, die WebBrowser
Kontrolle zu stoppen, versinkt die Ausnahmen und nur nach vorn Ihnen die natürlichen und erwarteten Weise?Oder gibt es ein hacky Weg, um zu werfen eine Ausnahme, durch native Grenzen?
Lösung 2
Meine beste Wette ist, warum es passiert ist, weil es eine native-managed-native Grenze zu überqueren.Der native Teil nicht vorwärts verwalteten Ausnahmen korrekt und es gibt nicht viel, was getan werden kann.
Ich bin immer noch der Hoffnung für eine bessere Antwort, wenn.
Andere Tipps
Ich habe nicht gesehen, die browser fressen Ausnahmen, es sei denn, du meinst Skript-Fehler.Skript-Fehler können aktiviert werden über die browser.ScriptErrorsSuppressed
Eigenschaft.
Wenn Sie sprechen über echte Ausnahmen, nicht nur-Skript-Fehler, können Sie uns zeigen, einige code, der das problem reproduziert?Wir haben den verwendeten browser und ausgiebig habe nicht gesehen, was Sie beschreiben.
Bearbeiten die code-Beispiel war nicht da, als ich fragte, für ein code-Beispiel