¿Cómo puedo manejar correctamente las excepciones lanzadas desde los controladores en ASP.NET MVC? El atributo HandleError
parece que solo procesa las excepciones lanzadas por la infraestructura de MVC y no las excepciones lanzadas por mi propio código.Error al manejar en ASP.NET MVC
El uso de este web.config
<customErrors mode="On">
<error statusCode="401" redirect="/Errors/Http401" />
</customErrors>
con el siguiente código
namespace MvcApplication1.Controllers
{
[HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
// Force a 401 exception for testing
throw new HttpException(401, "Unauthorized");
}
}
}
no da lugar a lo que yo esperaba. En cambio, obtengo la página de error genérica ASP.NET que me indica que modifique mi web.config para ver la información de error real. Sin embargo, si en lugar de lanzar una excepción vuelvo una vista válido, tengo la página /Shared/Views/Error.aspx:
return View("DoesNotExist");
lanzar excepciones dentro de un controlador que he hecho anterior parece eludir todos la funcionalidad HandleError
, entonces, ¿cuál es la forma correcta de crear páginas de error y cómo juego bien con la infraestructura MVC?
Le sugiero que compruebe el origen de http://kigg.codeplex.com, donde encontrará el código fuente completo de este httpModule, solo quiero saturar global.asax y por eso el HttpModule. – kazimanzurrashid