2008-08-20 10 views
3

私はSystem.Windows.Forms.WebBrowserを使用してVisual Studioの開始ページを表示します。しかし、コントロールが静かに沈んですべての例外をキャッチして処理しているようです。これを伝える必要は非常に不幸な行動です。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コントロールに例外をシンクするのを止めて自然に、予期した方法で転送する方法はありますか?または、ネイティブの境界を介して例外をスローするいくつかのハックな方法がありますか?

答えて

0

私の最善の策はあるのコードサンプルについて尋ねられたとき

編集は、コードサンプルがありませんでした。ネイティブの部分は、管理された例外を正しく転送しませんし、実行できることはあまりありません。

私はまだ良い答えを望んでいます。

1

スクリプトのエラーを意味しない限り、ブラウザで例外が発生することはありませんでした。スクリプトエラーはbrowser.ScriptErrorsSuppressedプロパティで有効にすることができます。

スクリプトのエラーだけでなく、実際の例外については、問題を再現するコードを表示できますか?私たちは広範囲にブラウザを使用しており、あなたが何を記述しているのか見ていません。私が交差するネイティブ管理のネイティブ境界があるので、それはなぜ起こるか

関連する問題