web-dev-qa-db-ja.com

VS 17がすべての例外を破る

Visual Studio 2017は(突然のように)all例外を破っています。つまり、例外設定でそれらを無効にすると(デバッグ中にCTRL + ALT + Eを押すと)、デバッガーは引き続きそれらを中断します。これがVSの単なるバグであり、変更できないため、それと共存しなければならないのか、それとも簡単な解決策があるのか​​はわかりません。

これは例外設定ウィンドウです: the exception settings

そしてこれは例外VSが壊れます: the exception

ちなみに、私はその美しいマイナス(それを押しても何も起こらない)または不可能な条件を追加しようとしました(VSはまだ例外で壊れました)。

また、以前に非アクティブ化した他の例外をテストしましたが、それらもスローされ、他のプロジェクトで同じ問題をテストしました: the issue in other projects

私は実際にすべてのものをtry catchステートメントに入れましたが、VSはまだ壊れています:

InitializeComponent ();
try
{
    var t = new Thread (() =>
    {
        while (!IsHandleCreated) {} //It breaks here (similiar to the screenshots)
        while (true)
            Invoke (new Action (() => Size = new Size ()));
    });
    while (true)
    {
        t.Start ();
        Thread.Sleep (100);
        t.Abort ();
    }
}
catch (ThreadAbortException) { }

私のPCの他のIDE(Riderなど)には表示されず、VSの他のPCにも表示されません。私のPCで常に発生するわけではなく、最近起動したばかりでデバッグモードでのみ発生しました。そして、実行を(F5で)継続すると、正常に継続します。

[〜#〜] edit [〜#〜]try catchをスレッド内に入れると、少し異なる動作をしました(ごめんなさいここに写真を入れますが、その場合はより表現力豊かだと思います): new exception location

anybodyこの動作を説明できますか?

[〜#〜] edit [〜#〜]キャッチの最後でThreadAbortExceptionsが再び壊れるのは正常なようですステートメント。ただし、VSはこの例外でまったく壊れないはずです。

16
MetaColon

私は同様の問題を抱えていました。

[ツール]> [オプション]> [デバッグ]> [全般]の「「例外がAppDomainまたはマネージド/ネイティブの境界を越えるとブレークする」をオフにして修正しました==

4
ILMTitan

これが他の種類のプロジェクトで発生するかどうかは確認できませんが、VSTP(Visual Studio Tools for Python)では一貫して発生します。

それは満足できるものではありませんが、少なくとも例外を黙らせ、より良い解決策が現れるまで安心して作業を続けることができます。私の場合、StopIterationは繰り返しごとに中断するため、コードをデバッグすることはほぼ不可能でした。

Debug> Windows> Exception Settingsを選択するか、Ctrl-Alt-Eを押します。 Y

Exception Settings

ウィンドウの任意の場所を右クリックして、Show Columns> Additional Actionsを選択します。 「追加のアクション」列がまだ表示されていない場合は表示されます。

沈黙させたい特定の例外を右クリックするか、トップレベルのチェックボックスをクリックして、例外のカテゴリー全体、つまりPython Exceptionsを選択します。 ユーザーコードで未処理の場合に続行をクリックします。

追加の例外または例外のカテゴリごとに繰り返します。

2
ATL_DEV

[ツール]> [オプション]> [デバッグ]> [全般]でEnable Just My Codeをオフにして修正しました

1
Efreeto

私はこれに少し遅れていることを知っていますが、ThreadAbortExceptionは他のすべての例外とは異なり、いくつかの特別な処理を必要とします。処理されます。

0
Toby