我正在使用代码我没有写过使用Entity Framework的代码,这仍然有点神秘。在一个web api控制器中有下面的代码。Try Catch does not catch
try
{
sdf = sdf.sdf(sdf);
}
catch (Exception ex)
{
return NotFound();
}
GetOrderByAlternateIdentifier抛出一个空指针异常,当一个坏的OrderID进来。这样,可暂停执行代码的GetOrderByAlternateIdentifier方法,因为不被困在错误。我会认为我上面的try catch会捕获它,所以我可以发回NotFound响应,但它不。
如何让我的try catch捕获GetOrderByAlternateIdentifier()中发生的错误?
Greg
做一个网络搜索“select is not broken”。抓住没有破碎。还有其他事情正在发生,你没有告诉我们这件事;还有别的东西可以解释你正在观察的内容。 –
如果'GetOrderByAlternateIdentifier'返回一个'IEnumerable',那么你可能还没有在它上面调用枚举器。当你这样做时,在try-catch之外你会得到异常。请显示更多代码。 –
这个错误会出现在你的select或者方法'GetOrderByAlternateIdentifier'中的任何语句中,然后你需要将它包装在try catch中,如果它抓住了,就会把堆栈中的错误“抛出”到当前的错误。 'try catch'只能在你当前的范围内工作。 – Nikerym