try-catch globale nel livello di presentazione

2

Ho un'app a 3 livelli strutturata come segue.

  • Presentation Layer (progetto ASP.NET MVC)
  • Business Logic Layer (Servizi per i controller in PL)
  • Livello di accesso ai dati (archivi)

Ogni controller in PL interagisce con il suo servizio in BLL, che a sua volta ha accesso ai repository in DAL.

È una buona pratica fare un tentativo "globale" nel PL? In questo modo, se l'eccezione viene generata in DAL, ad esempio, posso visualizzare il messaggio di errore all'utente. O c'è un modo migliore per farlo?

    
posta erdinger 22.05.2014 - 16:22
fonte

2 risposte

4

Il tuo livello di presentazione dovrebbe avere una barriera di errore . Tutti i framework decenti ti consentono di configurarlo una sola volta, per eccezioni impreviste. Quindi try-catch non inquina ogni metodo del controller.

Quando vuoi mostrare il messaggio di errore all'utente, prendi l'eccezione nel controller specifico. Tuttavia, questo è utile solo se l'utente può fare qualcosa al riguardo, quindi non catturare le eccezioni tutte nel blocco catch del controller - lasciare che la maggior parte di esse ricada nella barriera di errore.

Consulta questo articolo link . Riguarda Java, quindi la distinzione selezionata / non controllata non si applica, ma dovresti comunque seguire lo schema di errori vs imprevisti

    
risposta data 22.05.2014 - 17:53
fonte
0

In ASP.Net, puoi configurare una pagina di errore nella tua Web Config in grado di gestire la visualizzazione di eventuali errori non rilevati nel metodo da te scelto. L'impostazione di un tentativo / cattura globale può causare problemi nell'ottenere i tuoi errori. La tua pagina di errore dovrebbe essere impostata per mostrare il tuo messaggio di errore e, se vuoi che l'utente visualizzi l'errore, mostra eventuali errori che hai ricevuto.

    
risposta data 22.05.2014 - 17:55
fonte

Leggi altre domande sui tag