Se debe iniciar por aclarar que MVC es un HttpHandler conectado al pipeline de asp.net, y, asp.net, es un framework para manejar peticiones, casi siempre dentro de IIS. IIS -> ASP.NET -> MVC Por eso hay tantos lugares donde se pueden manejar los errores, de adentro (MVC) hacía afuera (IIS) podemos listar los siguientes:
- HandleErrorAttribute
- Controller.OnException Method
- Application_Error event
- customErrors element (web.config)
- httpErrors element (web.config)
- Custom HttpModule