我正在使用代碼我沒有寫過使用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