我使用System.Windows.Forms.WebBrowser
来制作Visual Studio Start Page的视图。但是,看起来控制系统正在捕捉和处理所有的异常情况,并通过默默地沉没它们!没有必要告诉这是一个非常不幸的行为。防止WebBrowser控件吞噬异常
void webBrowserNavigating(object sender, WebBrowserNavigatingEventArgs e)
{
// WebBrowser.Navigating event handler
throw new Exception("OMG!");
}
上面的代码将取消导航并吞下异常。
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());
}
}
所以,我做什么(上图)是捕获所有异常,并弹出一个框,这是比默默地失败的理想更好,但仍显然远远。我希望它通过正常的应用程序失败路径重定向异常,以便它最终变成未处理的,或由应用程序从根处理。
是否有任何方法可以告诉WebBrowser
控件停止沉没异常,并将它们转换为自然和预期的方式?还是有一些奇怪的方式通过本地边界抛出异常?