在日常開(kāi)發(fā)中,我們會(huì)去捕捉很多的異常,來(lái)進(jìn)行處理,通常我們的方法就是,在需要進(jìn)行異常處理的地方加上 try catch 塊,但是,如果需要異常處理的地方很多,那么,就會(huì)頻繁的去寫(xiě)try catch 塊,對(duì)于我們天生‘懶惰’ 的程序員來(lái)說(shuō),總想找一個(gè)捷徑。于是,就會(huì)有全局異常處理,那么,今天,我們就來(lái)看看在MVC中怎么進(jìn)行全局異常處理的。

一、MVC框架自己的全局異常處理

  在MVC中,框架已經(jīng)給我們一共了一套全局異常處理的特性類HandleErrorAttribute類。我們可以在MVC中的App_Start文件夾中的FilterConfig.cs文件中找到這么一行代碼

1         public static void RegisterGlobalFilters(GlobalFilterCollection filters)2         {3             filters.Add(new HandleErrorAttribute());4         }

 

這個(gè)就是實(shí)例化一個(gè)HandleErrorAttribute類,放到過(guò)濾器中。然后我們的Views>Shared文件夾中有一個(gè)Error.cshtml的頁(yè)面,其中,該頁(yè)面里的Model的類型為System.Web.Mvc.HandleErrorInfo,這個(gè)是MVC框架已經(jīng)給我寫(xiě)好了的,我們可以直接拿來(lái)用。

在Error.cshtml頁(yè)面中,我們可以做進(jìn)一步處理,來(lái)顯示錯(cuò)誤信息,根據(jù)需求來(lái)展示錯(cuò)誤信息。這些錯(cuò)誤信息都會(huì)在System.Web.Mvc.HandleErrorInfo類中的某些屬性中找到的。

例如:一下是Error.cshtml。

大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計(jì)算培訓(xùn),高端軟件開(kāi)發(fā)培訓(xùn),項(xiàng)目經(jīng)理培訓(xùn)

我們?cè)贑ontrol中,故意寫(xiě)一個(gè)異常出來(lái):

大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計(jì)算培訓(xùn),高端軟件開(kāi)發(fā)培訓(xùn),項(xiàng)目經(jīng)理培訓(xùn)

1     public class HomeController : Controller2     {3         public ActionResult&nbs