を使用してSystem.Windows.Forms.WebBrowser
、ビューを Visual Studio スタート ページのように作成しています。ただし、コントロールはすべての例外を黙ってシンクすることでキャッチして処理しているようです! これは非常に残念な振る舞いであると言う必要はありません。
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
例外のシンクを停止し、自然で期待される方法で転送するようにコントロールに指示する方法はありますか? または、ネイティブの境界を介して例外をスローするハックな方法はありますか?