How can I correctly handle exceptions thrown from controllers in ASP.NET MVC? The HandleErrorattribute seems to only process exceptions thrown by the MVC infrastructure and not exceptions thrown by my own code.
Using this web.config
<error statusCode="401" redirect="/Errors/Http401" />
with the following code
public class HomeController : Controller
public ActionResult Index()
// Force a 401 exception for testing
throw new HttpException(401, "Unauthorized");
doesn't result in what I was hoping for. Instead I get the generic ASP.NET error page telling me to modify my web.config to see the actual error information. However, if instead of throwing an exception I return an invalid View, I get the /Shared/Views/Error.aspx page:
Throwing exceptions within a controller like I've done above seems to bypass all of the HandleErrorfunctionality, so what's the right way to create error pages and how do I play nice with the MVC infrastructure?