Ho faticato con questo dal primo giorno. Probabilmente non mi aiuta che sono stato circondato da un sacco di codice che non gestisce nemmeno gli errori.Come gestire correttamente gli errori in un'applicazione n-tier?
In ogni caso, sto lavorando con WebForms nel tradizionale design a più livelli: UI-> BLL-> DAL. Di solito quello che faccio (e so che non è giusto) è provare/catturare le mie operazioni sui dati. Se c'è un'eccezione, la butto semplicemente in bolla.
try
'db operations
catch ex as exception
throw
finally
'close connections
end
Così allora bolle fino alla BLL e c'è un altro try/catch dove andrò a registrare l'errore. Ora voglio avvisare l'utente che qualcosa non va, quindi lo lancio di nuovo, in questo modo bolle all'interfaccia utente. Al livello dell'interfaccia utente, eseguirò un tentativo/cattura e, in caso di errore, visualizzerò un messaggio amichevole.
Quali sono i tuoi pensieri? Cosa posso fare meglio qui?
Ma se si verifica un errore nel DAL, non è necessario chiudere la connessione per evitare perdite? – Mike
inserisci gli oggetti di connessione/comando in un blocco {} {}} –
Non è necessario ** esplicitamente ** provare/catturare DAL se si utilizza l'istruzione "Utilizzo".Sotto le copertine, "Uso" avvolgerà la tua connessione/comando con un try/finally e li chiuderà infine. –