我正在使用一些外部代碼,當使用某些參數調用時會拋出一個可以忽略的異常。不幸的是,由於各種原因,我無法更改此外部代碼。避免打破生成的代碼
我創建了看起來像這樣的包裝方法:
[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]
只會避免調試上面的代碼,但被調用的代碼仍然會丟失。
我想要的是即使在「Exceptions ...」窗口中選中了所有複選框,代碼也會運行。有沒有可以做到這一點的屬性?
如果沒有屬性,我可以創建一個包含這些類/方法的項目並排除整個項目。有沒有辦法做到這一點?
你的Tools-> Optoins-> Debugging->異常跨越AppDomain設置時中斷嗎? http://social.msdn.microsoft.com/Forums/en-US/csharpide/thread/a4c32d57-9046-41c4-bf8b-3718ff474847/ –
由於調試器配置設置:Debug + Exceptions,Thrown複選框,您會得到此信息。沒有任何事情可以做,但取消勾選該複選框。 –
我希望拋出此方法之外的其他異常,並讓我看到它們,所以我想不要剔除拋出的複選框就是這個問題的目的。作爲開發人員,我希望始終知道在開發階段是否會拋出部分代碼中的異常。錯誤的類型是ApplicationException,所以它的範圍很廣,我不得不通過取消選中來限制它。 – Blueberry