我使用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
控件停止沉沒異常,並將它們轉換爲自然和預期的方式?還是有一些奇怪的方式通過本地邊界拋出異常?