mar*_*ith 5 .net c# exception-handling exception try-catch
我试图找出处理异常的最佳方法,我的应用程序有很多层,并开始使用返回类型的BOOL,即如果失败则返回False,如果成功则返回True ..
这在SaveMyRecord(somerecord)等方法中效果很好; 因为我传递的值并且不需要任何返回,所以我可以使用bool的返回类型来指示它是否成功.
但后来它让我觉得像GetMyRecord()这样的东西实际上返回了IQueryable的类型,因此我不能用bool告诉我它是否失败.
事情是我处理很多我的错误,他们发生尝试和捕获,因此不希望客户端收到异常.
也许有更好的方法,然后我考虑使用OUT参数但这意味着我需要更改所有方法的签名并添加aditional params ..
也许我应该将异常传递回CLIENT并在那里处理它?
是否有一些标准或任何文档可以提供最佳实践?
dov*_*ove 10
将异常冒泡到CLIENT并在那里处理它.绝对将其全部细节传递给它.大多数最佳实践几乎完全同意这一点,总是最终处理外围,在这种情况下是CLIENT,但在其他情况下可能是Web服务.
只有在您想要记录它,添加更多信息或尝试从特定异常中恢复时才会捕获.在每种情况下,您将要么将原始内容作为内部抛出一个新异常,或者只是按原样"抛出"原始异常,并且如注释中所指出的那样不会"抛出"
这个问题几乎是重复的,你会发现很多关于SO的问题.我昨天才回答了类似的问题
您应该开始阅读例外设计指南
然后,根据您的方案,您应该考虑其他因素,例如异常屏蔽.
例如:如果您使用Web服务(ASMX或WCF)作为后端,您可能需要查看改进Web服务安全性并阅读有关异常处理的部分.
归档时间: |
|
查看次数: |
3124 次 |
最近记录: |