Al verificarsi di un'eccezione non gestita, ASP.NET mostra per default una pagina che ne illustra tutti i dettagli, così che lo sviluppatore possa effettivamente comprendere la natura del problema. Nei sistemi in produzione, però, è buona norma non esporre questo tipo di dettagli, per cui è preferibile attivare la gestione dei customError da web.config
<customError mode="On" />
Sebbene ciò sia sufficiente per evitare di condividere informazioni sensibili, spesso di vuole anche redirigere l'utente verso una pagina di cortesia. In ASP.NET MVC è disponibile l'action filter HandleError che può essere utilizzato per decorare una action o un intero controller.
[HandleError] public class HomeController : Controller { public ActionResult Index() { throw new NotImplementedException(); } }
Invocando la action Index, in questo caso, il runtime effettuerà automaticamente il rendering di una view apposita, che deve essere denominata Error e deve risiedere o nella cartella associata al controller o, in alternativa, nella cartella shared; il risultato finale è visibile in figura:

Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Definire la durata dell'output cache in ASP.NET Core 7
Abilitare automaticamente Dependabot in tutti i repository di una organizzazione su GitHub
Leggere i dati di configurazione di ASP.NET Core da Azure Key Vault
Sfruttare la local cache del browser tramite gli ETag in ASP.NET Core
Gestire dati sensibili nella configurazione in ASP.NET Core
Taggare la output cache in base al routing in ASP.NET Core
Leggere la configurazione da Azure KeyVault con logica di retry in ASP.NET Core
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Utilizzare parametri a livello di controller nel routing di ASP.NET Core