這篇文章主要為大家詳細介紹了MVC異常處理的相關資料,具有一定的參考價值,感興趣的小夥伴們可以參考一下
在日常開發中,我們會去捕捉很多的異常,來進行處理,通常我們的方法就是,在需要進行異常處理的地方加上 try catch 塊,但是,如果需要異常處理的地方很多,那麼,就會頻繁的去寫try catch 塊,對於我們天生‘懶惰' 的程式員來說,總想找一個捷徑。於是,就會有全域異常處理,那麼,今天,我們就來看看在MVC中怎麼進行全域異常處理的。
一、MVC架構自己的全域異常處理
在MVC中,架構已經給我們一共了一套全域異常處理的屬性類別HandleErrorAttribute類。我們可以在MVC中的App_Start檔案夾中的FilterConfig.cs檔案中找到這麼一行代碼
public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new HandleErrorAttribute()); }
這個就是執行個體化一個HandleErrorAttribute類,放到過濾器中。然後我們的Views>Shared檔案夾中有一個Error.cshtml的頁面,其中,該頁面裡的Model的類型為System.Web.Mvc.HandleErrorInfo,這個是MVC架構已經給我寫好了的,我們可以直接拿來用。
在Error.cshtml頁面中,我們可以做進一步處理,來顯示錯誤資訊,根據需求來展示錯誤資訊。這些錯誤資訊都會在System.Web.Mvc.HandleErrorInfo類中的某些屬性中找到的。
例如:一下是Error.cshtml。
我們在Control中,故意寫一個異常出來:
public class HomeController : Controller { public ActionResult Index() { string i = "12a"; int j = Convert.ToInt32(i); return View(); } }
運行一下,我們來看一下結果。