Exception Handling in ASP.NET MVC3


In this article, we will learn about the HandleError filter and discuss about the exception handling mechanisms that will fit to an MVC3 application. Exception handling is a serious issue in any application.  Whether it's web or desktop. Implementing an appropriate exception handling is compulsory in every application. ASP.NET MVC3 comes with some built-in support for exception handling through exception filters. The HandleError attribute is the default built-in exception filter.

[HandleError] Attribute:-

[HandleError] attributes that can be applied over an action or a controller or even at a global level. When you create a MVC3 application you will see the HandleErrorAttribute is added to the GlobalFiltersCollection in the Global.asax.cs which under the Global.asax.

public static void RegisterGlobalFilters(GlobalFilterCollection filters)


      filters.Add(new HandleErrorAttribute());


Working of HandleError Attribute:-

The HandleError attribute handles the exceptions that are raised by the controller actions, filters and views, it will return a custom view named Error.cshtml which is placed in the Shared folder. The HandleError filter works only if the <customErrors>section is turned On in web.config under the <system.web> tag.



                <customErrors mode="On"/>


Note:- HandleError Filter handles the exception while customErrors turn On in Web.config file  by default customErrors isReadonly

Now write that code in HomeController.

        public ActionResult Index()


            ViewBag.Message = "Welcome to ASP.NET MVC!";

            return View();


        [HandleError(ExceptionType = typeof(DivideByZeroException), Master = "_Layout", View     = "Error")]


        public ActionResult About()


            string str;

            object obj = null;

            str = obj.ToString();

            return View();



[HandleError] attribute have four properties:-

1.       ExceptionType:- The ExceptionType allows you to specify what exception that attribute should handle

2.       Master: - The Master allows you to manage which master page (or as Razor refers to them, Layout) you desire to render.

3.       Order: -

4.       View: - The View allows you to specify which error view (page) you want it to redirect to.

[HandleError(ExceptionType = typeof(DivideByZeroException), Master = "_Layout", Order = 1, View = "Error")]



This code will Generate the runtime exception “Object reference not set to an instance of an object” when execute the About () action. [HandleError] attribute will handle the error and call the Error.cshtml View which is under the Shared Folder or Home Folder (created by user View).

Exception Handling in ASP.NET MVC3

In Error.cshtml:-

@model System.Web.Mvc.HandleErrorInfo


    ViewBag.Title = "Error";





    Sorry, an error occurred as processing your request.



Now Run That Project and select the About Menu:-

Exception Handling in ASP.NET MVC3

After Run and select the About Menu you will see on URL bar call the “Home/About” but here is render  the Error.cshtml  View that the reason is  raises Runtime Exception .s

Leave Comment