我有一個服務層在我MVC3應用程序,它起着除其他事項外存儲庫的作用,因爲我數據層和實際的網絡應用程序之間的層。我已將所有GetById
方法編碼爲健壯,使用FirstOrDefault
而不僅僅是首先,因爲該ID是通過URL傳遞的,不能保證是有效的ID。錄入邏輯和數據錯誤與ELMAH
我現在發現自己正在做的地方是FirstOrDefault
,那麼只有在結果不爲空的情況下才能繼續。我想在事件爲空時記錄事件,然後繼續執行任何操作。現在,我已經在使用Elmah記錄未處理的異常,並且我在MVC3中異常處理等方面的經驗很少,但是它發生在我認爲使用簡單的First
可能會更好,如果沒有找到實體,Elmah會記錄異常。
我應該如何看待這種情況下,在無效的ID是相當肯定的邏輯異常,但不是低水平的CLR異常?這與當有人被要求輸入一個Id並且沒有找到其搜索項的實體時不一樣,這是一個正常的邏輯結果。
我想我會直接去寫Elmah日誌。我不想要兩個日誌記錄基礎設施,即使我可以將它們置於一個看起來像一個。 – ProfK