J'utilise le System.Windows.Forms.WebBrowser
pour afficher la page de démarrage de Visual Studio. Cependant, il semble que le contrôle attrape et gère toutes les exceptions en les coulant silencieusement! Inutile de dire que c'est un comportement très regrettable.Empêcher le contrôle WebBrowser d'avaler des exceptions
void webBrowserNavigating(object sender, WebBrowserNavigatingEventArgs e)
{
// WebBrowser.Navigating event handler
throw new Exception("OMG!");
}
Le code ci-dessus annulera la navigation et avalera l'exception.
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());
}
}
Alors, ce que je fais (ci-dessus) est attraper toutes les exceptions et pop une boîte, cela vaut mieux que silencieusement une défaillance, mais encore nettement loin d'être idéale. Je voudrais qu'il redirige l'exception à travers le chemin d'échec de l'application normale pour qu'elle ne soit finalement pas gérée, ou traitée par l'application depuis la racine.
Est-il possible d'indiquer au contrôle WebBrowser
d'arrêter l'enfoncement des exceptions et de les transférer de manière naturelle et attendue? Ou y a-t-il une manière hacky de lancer une exception à travers les frontières natives?