有關MVC異常情況的相關處理

來源:互聯網
上載者:User
這篇文章主要為大家詳細介紹了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();    }  }

運行一下,我們來看一下結果。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.