我正在使用System.Windows.Forms.WebBrowser
, 来创建一个视图 a-la Visual Studio Start Page。但是,控件似乎正在通过静默下沉来捕获和处理所有异常!不用说这是一个非常不幸的行为。
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
控件停止接收异常并以自然和预期的方式转发它们?还是有一些 hacky 方法可以通过本地边界抛出异常?