.net – 如何正确处理n层应用程序中的错误?

从第1天开始,我一直在努力解决这个问题.我可能已经被很多甚至根本不处理错误代码所包围.

无论如何,我正在使用传统的n层设计中的WebForms:UI-> BLL-> DAL.通常我所做的(我知道它不对)是尝试/捕获我的数据操作.如果有例外我只是把它扔到泡沫中.

try
'db operations
catch ex as exception
throw
finally
'close connections
end

那么它会冒泡到BLL,并且还有另一个try / catch,我将记录错误.现在我想提醒用户有什么问题,所以我再次抛出它,这样它就会冒泡到用户界面.在UI级别,我将包装一个try / catch,如果有错误,我将向他们显示一条友好的消息.

你的想法是什么?我能在这做些什么?

解决方法

据我所知,你有三个尝试/捕获 – 每层一个:DAL,BLL,UI.

你应该只在你想要做些什么的时候抓住它.

根据我的理解,你只需从DAL退回,所以没有必要.

从BLL开始,您可以记录该异常,这是一个很好的做法,因为您将能够收集有关异常的数据,从而最终改进应用程序.

然后,您将捕获UI层,将异常转换为用户友好的内容.没关系.

所以我只会从DAL层中删除try / catch – 如果你真的不做任何事情而不是重新抛出异常.

在某些情况下,在BLL上添加一个标识符可能很有用,该标识符将传递给UI异常并显示给最终用户,这样如果他们调用支持,支持人员就可以将给定的Id与服务器日志中的异常相关联.

例如,可以在Exception.Data集合中添加Guid或其他有意义且唯一的其他内容.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....