.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或其他有意义且唯一的其他内容. (编辑:哈尔滨站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 我们可以在视图状态中放置哪些类型的对象?
- asp.net 将一个图片以二进制值的形式存入Xml文件中的实例代
- ASP.NET批量下载文件的方法
- asp.net – 选择框更改事件中的setTimeout
- asp.net-mvc-4 – AngularJs,DropZone.Js,MVC4 – 拖放,预览
- asp.net-ajax – ASP.Net AJAX UpdatePanel无法触发Selecte
- asp.net-core – 我为什么要选择带有.Net核心的ASP.NET Cor
- asp.net-mvc-4 – 全局过滤器MVC 4的执行顺序是什么
- ASP.NET中上传并读取Excel文件数据示例
- asp.net-mvc – 具有ASP.NET MVC的多语言网站
- asp.net – 如何在MVC 3中设置图表系列颜色?
- ASP.Net:为什么我的按钮的点击/命令事件没有在转
- asp.net(C#)禁止缓存文件不让文件缓存到客户端
- asp.net-mvc – MVC4部分视图没有将值加载到“容
- asp.net-mvc – MVC“添加控制器”是“无法检索元
- asp.net-mvc – Bug? ASP.NET MVC 2中的客户端验
- asp.net-mvc – 带vNext的MVC 6:我们还需要Glob
- 如何将数组从Asp.net服务器端传递到客户端的Java
- 来自ASP.NET MVC站点的“无效的JSON原语:alihac
- asp.net-mvc – MVC DB首先修复显示名称