B. *_*non -5 c# exception control-flow
在我看来,这段代码:
public static bool InsertInventoryItem(DuckbillUtils.InventoryItem invItem)
{
bool addSuccess = true;
try
{
InventoryItemsList invItems = new InventoryItemsList();
invItems.inventoryItems.Add(invItem);
}
catch (Exception)
{
addSuccess = false;
}
return addSuccess;
}
Run Code Online (Sandbox Code Playgroud)
...不应该编译,因为不能保证将到达返回行 - 如果有异常,则分配addSuccess,但不会从catch块中返回该方法,并且不会到达最后一行,在这种情况下,该方法没有返回任何内容?
代码将catch(全部)异常设置addSuccess为false,然后进入返回行.如果没有抛出异常,返回行将返回true.并addSuccess在第一行分配一个值,它永远不会被取消分配.