我有一个C#方法,其中包含如下代码:
try
{
// Do whatever
}
catch (Exception2 ex)
{
// Handle exception 1
}
catch (Exception2 ex)
{
// Handle exception 1
}
catch (Exception3 ex)
{
// Handle exception 3
}
当我尝试调试它时,我可以正常放置断点。但是,当其中一个catch语句使用when
关键字时,例如:
catch (ArgumentOutOfRangeException ex) when (ex.Message.StartsWith("Whatever message"))
没有为该方法加载调试符号,我无法让调试器在其中进行分解。方法内的断点显示如下:
知道为什么会这样吗?我正在使用VS2015 Update 3.
更新:其中一条评论要求我显示更多代码,但我最终将代码简化为以下内容:
using (var model = ContentInventoryModel.Create())
{
try
{
Console.WriteLine("test");
}
catch (ArgumentOutOfRangeException ex) when (ex.Message.Contains("This email group can"))
{
}
}
使用此代码,不会为该方法生成任何符号,因此我不能在Console.WriteLine
语句中设置断点。当我删除keyword
时,会生成符号,我可以在Console.WriteLine
语句处设置断点。
值得一提的是,我正在通过ReSharper的NUnit Test Runner进行调试。