3

特定のパラメーターで呼び出されたときに無視できる例外をスローする外部コードを使用しています。残念ながら、さまざまな理由でこの外部コードを変更できません。

次のようなラッパーメソッドを作成しました。

    [DebuggerStepThrough]
    public static bool TryGetXXX(string input, out string output)
    {
        try
        {
            output = MethodThatSometimesFails(input);
            return true;
        }
        catch
        {
            output = null;
            return false;
        }
    }

    private static string MethodThatSometimesFails(string input)
    {
        // Don't want this to cause a break
        // but can not put the attribute on this method
        throw new Exception("couldnt deal with your request");
    }

残念ながら、外部コードは内部の例外で壊れますMethodThatSometimesFails。は上記[DebuggerStepThrough]のコードのデバッグを回避するだけですが、呼び出されたコードは引き続きスローします。

私が望むのは、「例外...」ウィンドウのすべてのチェックボックスがオンになっていてもコードが実行されることです。これを行う属性はありますか?

属性がない場合は、これらのクラス/メソッドを含むプロジェクトを作成し、プロジェクト全体を除外できます。これを行う方法はありますか?

4

3 に答える 3

1

メソッドまたはクラスをDebuggerNonUserCodeAttributeでマークしてみてください

于 2012-10-04T20:24:36.033 に答える
0

これに対する解決策が見つかりませんでした。結局のところ、唯一のオプションは、TryGetを別のDLLに配置することでした。

于 2012-10-09T15:23:06.050 に答える
0

有効なパラメーターがわかっている場合は、関数を呼び出す前にそれらを確認してください。それらが無効な場合は、関数を呼び出さないでください。

楽観的になり、コストがかかる可能性のある例外への依存を排除​​するようにしてください。

于 2012-10-04T20:02:31.770 に答える