如何优雅地实现错误处理?例如,我的数据访问层可能会抛出两种类型的错误: 1) 未授权访问,在这种情况下页面应隐藏所有内容并仅显示错误消息 2) 错误通知用户数据库中已经存在类似的东西(比如名称不唯一 - 例如),在这种情况下我不想隐藏所有内容。
编辑:
由于这里的一些评论,我设计出我应该创建派生的专门异常类型,例如 NotAuthorizedException、DuplicateException 等......一切都很好,但我可能会看到 2 个问题:
1) 每个存储过程都有一个返回字段 p_error,其中包含一条错误消息。从 DB 获取数据后,我需要检查此字段以查看返回的错误类型,以便抛出适当的异常。所以,我仍然需要在某处存储我的错误类型/错误消息......换句话说,我应该如何向用户发送准确的消息(在某些时候我需要)而不是先检查 p_error 字段。这让我回到错误对象。有人吗?
2) 我认为这可能会变成一场噩梦,其中异常的数量等于错误消息类型的数量。
我是不是漏掉了什么?
非常感谢大家!
最佳答案
您应该查看 Enterprise Library 中的异常处理 block .许多关于包装异常和在层之间传递它们的好技巧和代码软件。
关于c# - 三层架构中的错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/723690/