【发布时间】:2010-11-29 17:25:13
【问题描述】:
我正在尝试找出处理异常的最佳方法,我的应用程序有很多层,并开始使用返回类型 BOOL,即如果失败则返回 False,如果成功则返回 True..
这在 SaveMyRecord(somerecord); 这样的方法中非常有效。因为我正在传递值并且不需要返回任何内容,所以我可以使用 bool 的返回类型来指示它是否成功。
但后来它让我想到像 GetMyRecord() 这样的东西实际上返回 IQueryable 的类型,因此我不能使用 bool 来告诉我它是否失败。
问题是我正在处理我的很多错误,它们发生在 try 和 catch 中,因此不希望客户端收到异常。
也许有更好的方法,然后我开始考虑使用 OUT 参数,但这意味着我需要更改所有方法的签名并添加额外的参数..
也许我应该将异常传递回客户端并在那里处理它?
是否有一些标准或任何文档来推荐最佳实践?
【问题讨论】:
-
您在服务器端和客户端使用什么?例如:WCF、ASMX、WinFoms、WebForms。
-
如果你结合@AlfredMeyers 和@dove 所说的话,你就会得到我打算给你的答案。我不会将他们所说的内容添加到一个综合答案中,而是要同时阅读它们。最重要的是,尽管要阅读。为他们每个人 +1。
-
服务是否面向互联网?有哪些安全要求?您是否担心通过异常暴露潜在的不安全信息?
-
@AlfredMyers - 我使用了许多层,1 在 wcf 后面
标签: c# .net exception exception-handling try-catch