当前位置: 首页 > 编程语言 > C#

分层架构中的异常处理分享

时间:2023-04-11 00:34:12 C#

分层架构中的异常处理我们正在重构(当然还有重新设计)我们的分层设计服务。我们有服务操作层(BLL)、网络抽象层->(处理网络代理)、数据抽象层。但是我们对我们的异常处理策略有点困惑。我们不想向外界透露太多BLL的信息。(从其他层到bll很好)我们不想用trycatch堆栈弄乱代码我们不想弄乱catch块中的异常处理代码(如日志记录、电子邮件等)有人可以发布一些我们的代码示例或文献指针可以用来设计我们简单的异常处理框架吗?我们不想向外界透露太多BLL的信息。(从其他层到bll没问题)BLL本身定义了暴露的内容。确保展示你想看的东西。我们不想用trycatch堆栈把代码弄得乱七八糟。例外就是例外。不要使用它们来控制交通。让他们爆炸。如果您的逻辑不依赖于异常处理(不应该)并且您的代码自我保护(这很重要,您的applicationshouldAlwaysexplodinginvalidstateinsteadofworkingfurther.Otherwise-hardtounderstandwhatcauseswhat)然后,只需要一个错误处理程序来包装整个应用程序,它会在必要时转储堆栈跟踪。例如-在.net中,您可以使用订阅appdomain未处理的异常事件。我个人将ELMAH用于我的Web应用程序-app.config中的几行并且我有很好的错误日志,存储在sqlite中,可以从Web应用程序本身轻松访问。这就是我得到的所有错误处理。EricLippert有一篇关于如何处理异常的好文章。我认为这会很有用。异常处理可以很复杂,但好的方法是使用一些全局定义。例如,您可以使用通过任何AOP框架构建的方面-大多数IoC容器的一部分,如Unity、WindsorCastle、Spring.NET。一个单独的AOP框架类是PostSharp,它添加了运行时编译时方面。您还可以查看EnterpriseLibrary5.0及其异常处理应用程序块,它允许您开箱即用地执行基于策略的异常处理。以上就是C#学习教程:分层架构中的异常处理分享的全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。涉及侵权,请点击维权联系管理员删除。如需转载请注明出处: