Tom*_*any 3 c# linq debugging exception visual-studio
可以说我有以下代码:
IDictionary<int, int> itemPriceDict = loadItemPriceDictionary();
IList<IRow> dbItems = loadItemsFromDatabase();
IList<ItemDTO> itemDTOs = dbItems
.Select(dbItem => new ItemDTO()
{
Id = dbItem.Id,
Label = dbItem.Label,
PriceTag = itemPriceDict[dbItem.Id] // Possible KeyNotFoundException
})
.ToList();
Run Code Online (Sandbox Code Playgroud)
当给定的dbItem不存在给定的价格标签时,有时会出现KeyNotFound异常。
现在,当在Visual Studio中调试并引发异常时,您可以看到StackTrace,TargetSite,它向您显示触发该异常的代码行,但是 可以找出是哪个对象(dbItem)导致了异常并在Debugger中显示其数据?例如在“监视”窗口中?
我想要:
但无需添加或修改任何代码。
PS:我知道我可以将代码重写为循环,但是我不想这样做。
您可以这样写Select
:
.Select(dbItem =>
{
return new ItemDTO()
{
Id = dbItem.Id,
Label = dbItem.Label,
PriceTag = itemPriceDict[dbItem.Id] // Possible KeyNotFoundException
})
}
.ToList();
Run Code Online (Sandbox Code Playgroud)
这样可以将断点放置在选择评估中。
更好的是,进入“调试”菜单,然后选择“例外”(位于Visual Studio Edition的Windows子菜单下)。
然后进行设置,使其在KeyNotFoundException
您选择的任何一项或任何例外情况下都失效。
当发生异常时,调试器将自动中断,使您可以检查相关对象的状态
归档时间: |
|
查看次数: |
380 次 |
最近记录: |