Gestione delle eccezioni in MVC [I 2 metodi principali per gestire le eccezioni]
Pubblicato: 2020-12-29La gestione delle eccezioni in MVC viene utilizzata principalmente durante la creazione di applicazioni line-of-business che richiedono specifiche e condizioni particolari e hanno requisiti univoci.
Capiamo in che cosa consiste la gestione delle eccezioni in modo approfondito e in che modo ti aiuta con le tue applicazioni.
Sommario
Che cos'è la gestione delle eccezioni?
È il processo di gestione e risposta a condizioni eccezionali che si verificano e richiedono metodi specifici; questo deve essere incorporato nelle applicazioni aziendali per migliorare il risultato e garantire che tutti i requisiti siano gestiti correttamente.
Esistono due modi significativi in cui vengono gestite queste eccezioni
- Il metodo catch and block
- Il metodo di gestione degli errori dell'applicazione.
Tuttavia, questi non sono gli unici metodi utilizzati per il processo.
Qui, discuteremo i diversi passaggi e le tecniche che puoi usare per gestire le eccezioni in MVC.
Il metodo di gestione Try-Catch
Il metodo catch and block è considerato il metodo tradizionale utilizzato per la gestione delle eccezioni nelle applicazioni basate su MVC. Registrerai le informazioni sull'errore utilizzando questo metodo.

Provare
{aggiungi un'eccezione;}
cattura (nome di eccezione)
{
visualizzare di ritorno ("Errore");
}
Inserisci la condizione di eccezione nel blog try e aggiungi il nome dell'eccezione per il blocco catch. Quando l'eccezione viene catturata nel blocco catch, restituirà l'errore menzionato.
Questo può essere utilizzato anche per gestire e registrare tutti gli errori all'interno dell'applicazione.
Metodo OnException
Questo metodo consente di ignorare il metodo OnException all'interno della classe controller. Il codice di errore 500 viene utilizzato per gestire tutti gli errori registrati risultanti dalla gestione delle eccezioni in MVC .
Fondamentalmente, puoi registrare e specificare la visualizzazione dell'eccezione con questo metodo senza il ciclo try. Non è necessario abilitare la configurazione <customErrors> in web.config per iniziare con questo metodo.
HomeController di classe pubblica: Controller
{
public ActionResult Contact()
{
stringa msg = nullo;
ViewBag.Message = msg.Length;
return View();
}
sovrascrittura protetta void OnException(ExceptionContext filterContext)
{
filterContext.ExceptionHandled = vero;
//Registra l'errore!!
//Reindirizzamento all'azione
filterContext.Result = RedirectToAction ("Errore", "Errore interno");
// OPPURE restituisce una vista specifica
filterContext.Result = nuovo ViewResult
{
ViewName = “~/Views/Error/InternalError.cshtml”
};
}
}
Dai un'occhiata al codice sopra e noterai che OnException è un metodo void e accetta l'oggetto ExceptionContext come argomento.
Questo argomento contiene tutte le informazioni necessarie per registrare l'errore. Se imposti ExceptionHandled=true, sarai in grado di registrare facilmente le azioni generate da un particolare controller.
Attributo HandleError
Questo è un altro metodo popolare per gestire l'eccezione e gestire gli errori all'interno dell'MVC della tua applicazione. Se noti errori creati da un metodo di azione o da un controller, dovresti usare questo metodo.
Con questo attributo, puoi selezionare di visualizzare una vista personalizzata per la particolare eccezione. Ciò potrebbe verificarsi nel metodo di azione o nel controller.
Anche in questo caso, questo metodo viene utilizzato anche durante la gestione degli errori con il codice 500. Non è possibile registrare le eccezioni utilizzando questo metodo.
C'è un modo particolare per aggiungere questo attributo affinché funzioni secondo il tuo volere. È necessario aggiungere il filtro dell'attributo HandleError all'interno del metodo FilterConfig.RegisterGlobalFilters().
Insieme a questo, dovresti assicurarti che la modalità errori personalizzati <CustomErrors mode = “on”> sia sempre attivata all'interno di web.config. A questo punto, puoi aggiungere l'attributo alla modalità attiva.

HomeController di classe pubblica: Controller
{
[HandleError]
public ActionResult Contact()
{
stringa msg = nullo;
ViewBag.Message = msg.Length;
return View();
}
}
Il codice che abbiamo appena menzionato funziona meglio per il contesto e le esigenze di gestione delle eccezioni.
Qui l'attributo è configurato per il metodo di azione Contact(). Quando il processo è compilato, vedrai Error.cshtml visualizzato nella modalità di visualizzazione.
Ciò si verificherà solo quando si verifica un'eccezione. Questa è la visualizzazione predefinita in tutti i casi eccezionali. Puoi utilizzare questo attributo anche per configurare le varie pagine per gestire i diversi tipi di eccezioni.
Sebbene questo attributo funzioni perfettamente per la gestione degli errori e gestisca tutti i tipi di configurazioni, potrebbe non funzionare ovunque. Sceglilo per alcuni casi in cui ritieni che aiuterà la tua applicazione.
Il metodo non supporta le eccezioni di registrazione. Riesce a catturare solo le eccezioni HTTP all'interno del codice 500. Non può acquisire le eccezioni da altri controller. Quindi, non è un attributo che puoi considerare per tutte le occasioni e le esigenze.
Ereditare da HandleError
Puoi anche usare questo metodo per gestire le eccezioni. Il metodo sopra di cui abbiamo discusso non consente di riutilizzare i componenti, il che può essere considerato uno svantaggio.
Non puoi funzionare se devi continuare a codificare per tutte le eccezioni che devono essere registrate.
Di conseguenza, dovrai utilizzare questa estensione. Ti consente di ereditare dall'attributo HandleError e di usarlo attraverso il controller specifico. Di conseguenza, puoi gestire le eccezioni senza dover codificare troppo spesso.
Leggi anche: Domande di intervista sulla gestione delle eccezioni
Evento Application_Error
L'evento Application_Error è ancora un altro metodo per gestire l'errore dell'applicazione e gestire le eccezioni. Questa parte richiede il controllo dell'evento Application_Error all'interno del file global.asax.
Puoi attivare questo evento per tutti i tipi di codici di errore e gestione delle eccezioni in MVC , rendendolo più facile da usare e uno dei metodi migliori per gestire le eccezioni.
Questo utilizza il metodo di registrazione degli errori primario, che può essere utilizzato per gestire tutte le eccezioni che non vengono gestite all'interno dell'applicazione.
Gestione degli errori HTTP
Il metodo menzionato qui non può gestire nessuna delle eccezioni HTTP. Stiamo parlando di eccezioni come "File non trovato" e altri messaggi di errore comuni che sei destinato a ricevere.
Sarà necessario inserire i dettagli dell'errore e il codice di errore all'interno della sintassi per gestire queste eccezioni.
Prima di rilasciare la sintassi, dovrai annotare tutti i possibili codici di errore e i messaggi che potresti ricevere come parte dell'applicazione.
Per migliorare la tua conoscenza delle applicazioni line-of-business e acquisire competenze nei linguaggi di programmazione, iscriviti a upGrad .
Con una serie di corsi e una gamma di opzioni di carriera, aumenterai le tue opportunità di carriera.
Entra in contatto con i nostri esperti o prenota una chiamata con noi per saperne di più sulle opzioni personalizzate per te.
Iscriviti ai corsi di ingegneria del software dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.

Conclusione
Quando hai a che fare con la gestione delle eccezioni in MVC , devi assicurarti che il metodo che stai optando permetta di registrare tutti i possibili errori. Dovresti essere in grado di riutilizzare i componenti e gestire tutti gli errori dell'applicazione. Ulteriori informazioni sulla gestione delle eccezioni in Java.
Se desideri che un unico metodo gestisca tutte le possibili eccezioni, dovresti optare per il metodo Global Application_Error . Si assicura di registrare tutti gli errori insieme a <CustomErrors> e si assicura che siano registrati in Web.Config.
Con questo metodo, l'utente viene reindirizzato alle pagine specifiche quando riscontra l'errore. La gestione delle eccezioni è uno dei concetti fondamentali dello sviluppo di applicazioni utilizzando ASP.Net MVC.
Ci auguriamo che questo articolo sia stato utile per conoscere la gestione delle eccezioni in MVC; si prega di esplorare i nostri blog per saperne di più sulle diverse applicazioni.
Se sei interessato a saperne di più sullo sviluppo full-stack, dai un'occhiata al programma Executive PG di upGrad & IIIT-B in Full-stack Software Development, progettato per i professionisti che lavorano e offre oltre 500 ore di formazione rigorosa, oltre 9 progetti e incarichi, stato di Alumni IIIT-B, progetti pratici pratici e assistenza sul lavoro con le migliori aziende.
