Visual Studio 2017は(突然のように)all例外を破っています。つまり、例外設定でそれらを無効にすると(デバッグ中にCTRL + ALT + Eを押すと)、デバッガーは引き続きそれらを中断します。これがVSの単なるバグであり、変更できないため、それと共存しなければならないのか、それとも簡単な解決策があるのかはわかりません。
ちなみに、私はその美しいマイナス(それを押しても何も起こらない)または不可能な条件を追加しようとしました(VSはまだ例外で壊れました)。
また、以前に非アクティブ化した他の例外をテストしましたが、それらもスローされ、他のプロジェクトで同じ問題をテストしました:
私は実際にすべてのものを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をスレッド内に入れると、少し異なる動作をしました(ごめんなさいここに写真を入れますが、その場合はより表現力豊かだと思います):
anybodyこの動作を説明できますか?
[〜#〜] edit [〜#〜]キャッチの最後でThreadAbortExceptions
が再び壊れるのは正常なようですステートメント。ただし、VSはこの例外でまったく壊れないはずです。
私は同様の問題を抱えていました。
[ツール]> [オプション]> [デバッグ]> [全般]の「「例外がAppDomainまたはマネージド/ネイティブの境界を越えるとブレークする」をオフにして修正しました==
これが他の種類のプロジェクトで発生するかどうかは確認できませんが、VSTP(Visual Studio Tools for Python)では一貫して発生します。
それは満足できるものではありませんが、少なくとも例外を黙らせ、より良い解決策が現れるまで安心して作業を続けることができます。私の場合、StopIterationは繰り返しごとに中断するため、コードをデバッグすることはほぼ不可能でした。
Debug> Windows> Exception Settingsを選択するか、Ctrl-Alt-Eを押します。 Y
ウィンドウの任意の場所を右クリックして、Show Columns> Additional Actionsを選択します。 「追加のアクション」列がまだ表示されていない場合は表示されます。
沈黙させたい特定の例外を右クリックするか、トップレベルのチェックボックスをクリックして、例外のカテゴリー全体、つまりPython Exceptionsを選択します。 ユーザーコードで未処理の場合に続行をクリックします。
追加の例外または例外のカテゴリごとに繰り返します。
[ツール]> [オプション]> [デバッグ]> [全般]でEnable Just My Code
をオフにして修正しました
私はこれに少し遅れていることを知っていますが、ThreadAbortExceptionは他のすべての例外とは異なり、いくつかの特別な処理を必要とします。処理されます。