Ich habe damit seit Tag 1 gekämpft. Es hilft wahrscheinlich nicht, dass ich von viel Code umgeben war, der überhaupt nicht mit Fehlern überhaupt klarkommt.Wie werden Fehler in einer n-Tier-Anwendung richtig behandelt?
Wie auch immer, ich arbeite mit WebForms in Ihrem traditionellen n-Tier-Design: UI-> BLL-> DAL. Normalerweise tue ich (und ich weiß, dass es nicht stimmt), meine Datenoperationen zu versuchen. Wenn es eine Ausnahme gibt, schmeiße ich sie einfach zur Blase.
try
'db operations
catch ex as exception
throw
finally
'close connections
end
Also dann sprudelt es den BLL und dort ist ein weiterer try/catch, wo ich den Fehler protokollieren werden. Jetzt möchte ich den Benutzer darauf aufmerksam machen, dass etwas nicht stimmt, also werfe ich es erneut, auf diese Weise brennt es auf die Benutzeroberfläche. Auf der Ebene der Benutzeroberfläche werde ich einen try/catch einfügen und wenn es einen Fehler gibt, zeige ich ihnen eine freundliche Nachricht an.
Was sind Ihre Gedanken? Was kann ich hier besser machen?
Aber wenn ein Fehler in der DAL auftritt, muss ich die Verbindung nicht schließen, um Lecks zu vermeiden? – Mike
setzen Sie einfach Ihre Verbindung/Befehlsobjekte in eine Verwendung von {} Block –
Es gibt keine Notwendigkeit, ** explizit ** versuchen/fangen auf DAL, wenn Sie die "Using" -Anweisung verwenden.Unter den Deckeln wird "Verwenden" Ihre Verbindung/Befehl mit einem try/finally umschließen und sie schließlich schließen. –