c# - 三层架构中的错误处理

标签 c# error-handling n-tier-architecture

如何优雅地实现错误处理?例如,我的数据访问层可能会抛出两种类型的错误: 1) 未授权访问,在这种情况下页面应隐藏所有内容并仅显示错误消息 2) 错误通知用户数据库中已经存在类似的东西(比如名称不唯一 - 例如),在这种情况下我不想隐藏所有内容。

编辑:

由于这里的一些评论,我设计出我应该创建派生的专门异常类型,例如 NotAuthorizedException、DuplicateException 等......一切都很好,但我可能会看到 2 个问题:

1) 每个存储过程都有一个返回字段 p_error,其中包含一条错误消息。从 DB 获取数据后,我需要检查此字段以查看返回的错误类型,以便抛出适当的异常。所以,我仍然需要在某处存储我的错误类型/错误消息......换句话说,我应该如何向用户发送准确的消息(在某​​些时候我需要)而不是先检查 p_error 字段。这让我回到错误对象。有人吗?

2) 我认为这可能会变成一场噩梦,其中异常的数量等于错误消息类型的数量。

我是不是漏掉了什么?

非常感谢大家!

最佳答案

您应该查看 Enterprise Library 中的异常处理 block .许多关于包装异常和在层之间传递它们的好技巧和代码软件。

关于c# - 三层架构中的错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/723690/

相关文章:

c# - 如何在 C# 中创建字符串 HttpContext.GetGlobalResourceObject( @"languagetext","PersonalReportFrench")?

c# - 将焦点设置到 PanoramaItem

design-patterns - 你的域模型对象中应该有多少逻辑

C# 接口(interface)实现

dependency-injection - Rhino 模拟、依赖注入(inject)和关注点分离

c# - 在 C# 中删除非常大的对象

c# - 1000000000 * 3 = -1294967296?

perl - Bash的“DIE”信号处理程序

php - PHP警告消息公开了OAuth应用的 secret

php try catch报错