sar*_*ake 6 c# error-handling n-tier-architecture
如何优雅地实现错误处理?例如,我的数据访问层可能会抛出两种类型的错误:1)未授权访问,在这种情况下,页面应隐藏所有内容,只显示错误消息2)错误,告知用户此类内容已存在于数据库(例如,名称不是唯一的 - 例如),在这种情况下,我不想隐藏所有内容.
编辑:
由于这里的一些评论,我设计了我应该创建派生的专用异常类型,例如NotAuthorizedException,DuplicateException等等......它都很好,但是我可以看到2个问题:
1)每个存储过程都有一个返回字段p_error,其中包含一条错误消息.从DB获取数据后,我需要检查此字段以查看已返回的错误类型,因此我可以抛出适当的异常.所以,我仍然需要在某处存储我的错误类型/错误消息.....换句话说,我应该如何向用户发送确切的消息(在某些时候我需要),而不是先检查p_error字段.什么让我回到错误对象.任何人?
2)我可能会变成一场噩梦,其中异常的数量等于错误消息类型的数量.
我在这里错过了什么吗?
非常感谢大家!
创建您自己的异常层。
DALExceptionManager DuplicateException DatabaseException
BLLExceptionManager NotAuthorizedException InvalidDateException
在表示层中,添加此引用并创建一个公共异常处理程序。这样你就知道如何处理异常消息了。