我正在使用一些外部代码,当使用某些参数调用时会抛出一个可以忽略的异常。不幸的是,由于各种原因,我无法更改此外部代码。避免打破生成的代码
我创建了看起来像这样的包装方法:
[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