2012-04-10 18 views
8

Ho recentemente aderito a un progetto asp.net mvc in corso in cui non c'è molta coerenza nell'affrontare le eccezioni nel controller; alcuni sviluppatori restituiscono i dati al client per far sapere all'utente che cosa non va, altri li gettano indietro in modo che raggiungano il gestore a livello di server che li elabora e li registra, senza che l'utente sappia cosa succede.Eccezione di lancio e notifica all'utente

Mi sembra ovvio che entrambi gli approcci sono sbagliati da soli e devono invece completarsi a vicenda; quello a cui sono bloccato, è come farlo. Presumo che l'eventuale gestore di eccezioni/logger possa reindirizzare l'utente a una pagina Web di errore quando rileva qualcosa di particolarmente sgradevole, ma ciò limita il meccanismo a cose solo gravi.

Sono un po 'in cerca di un modo per eseguire "throw" e "return ..." in un momento in cui rilevo un'eccezione, quindi ottengo il lato server ordinato e registrato e ottengo il lato client dei dati che mi permetta di dire all'utente che c'è stato un singhiozzo.

La mia esperienza con asp.net è molto limitata e, anche se credo di aver capito abbastanza mvc da non poter essere un problema, questo è un po 'una "qual è la migliore pratica?" domanda da qualcuno che lavora con persone che non si preoccupano molto delle best practice.

+0

Il fatto che ti preoccupi solo di questo ti rende una buona aggiunta alla squadra.Ma assicurati che anche i tuoi compagni di squadra vedano l'importanza di questo, altrimenti sarai l'unico a cercare di migliorare le cose mentre gli altri continueranno a farlo. – MarioDS

+0

Sono d'accordo con Mario. Affrontare la tua preoccupazione con la tua squadra è importante. Se ritieni di avere la migliore metodologia per gestire le eccezioni, condividilo con il tuo team, in quanto migliorerà il prodotto a lungo termine. Avere una discussione casuale con loro può anche rivelare il loro processo mentale e le cose che potresti aver trascurato. – Tung

risposta

2

Esiste un buon progetto chiamato Elmah per gli errori di registrazione e le eccezioni nelle applicazioni ASP.NET. Si può trovare here

ELMAH (Moduli registrazione degli errori e gestori) è una funzione di registrazione errori a livello di applicazione che è completamente plug. Può essere aggiunto dinamicamente a un'applicazione Web ASP.NET in esecuzione o anche a tutte le applicazioni Web ASP.NET su una macchina, senza necessità di ricodifica o di nuova distribuzione.

volta ELMAH è caduto in un'applicazione web in esecuzione e configurato in modo appropriato, si ottengono i seguenti servizi senza cambiare una sola riga di codice:

  • registrazione di quasi tutte le eccezioni non gestite.
  • Una pagina Web da remoto visualizza l'intero registro delle eccezioni ricodificate.
  • Una pagina Web per visualizzare in remoto i dettagli completi di qualsiasi eccezione registrata, incluse le tracce dello stack colorato .
  • In molti casi, è possibile rivedere lo schermo giallo originale di morte generato da ASP.NET per una determinata eccezione, anche con la modalità di spegnimento personalizzato degli .
  • Una notifica via e-mail di ogni errore a l'ora in cui si verifica.
  • Un feed RSS degli ultimi 15 errori dal registro.
0

L'applicazione MVC che sto lavorando implementa il Application_Error nella Global.asax per gestire le eccezioni generate dall'applicazione e quindi reindirizza l'utente a una pagina di errore standard. Il Controller per la pagina degli errori gestisce la registrazione e visualizza solo le informazioni sufficienti sull'errore per consentire a una persona dell'assistenza di trovare la propria sessione nel sistema e aiutare a risolvere eventuali problemi.

Problemi correlati