Come posso gestire correttamente le eccezioni generate dai controller in ASP.NET MVC? L'attributo HandleError
sembra elaborare solo le eccezioni generate dall'infrastruttura MVC e non le eccezioni generate dal mio codice.Gestione degli errori in ASP.NET MVC
Usando questo web.config
<customErrors mode="On">
<error statusCode="401" redirect="/Errors/Http401" />
</customErrors>
con il seguente codice
namespace MvcApplication1.Controllers
{
[HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
// Force a 401 exception for testing
throw new HttpException(401, "Unauthorized");
}
}
}
non risulta in quello che speravo. Invece ottengo la pagina di errore ASP.NET generica che mi dice di modificare il mio web.config per vedere le informazioni di errore reali. Tuttavia, se invece di lanciare un'eccezione torno un invalido vista, ho la pagina di /Shared/Views/Error.aspx:
return View("DoesNotExist");
Lanciare eccezioni all'interno di un controller come ho fatto sopra sembra di bypassare tutti la funzionalità HandleError
, quindi qual è il modo giusto per creare pagine di errore e come posso giocare con l'infrastruttura MVC?
Ti suggerisco di controllare la fonte di http://kigg.codeplex.com dove troverai il codice sorgente completo di questo httpModule, voglio solo ingombrare global.asax ecco perché HttpModule. – kazimanzurrashid