在浏览MS示例和Stackoverlow示例中,了解如何处理WebRequest
(HttpWebRequest
)和WebReponse
(HttpWebResponse
)生成的异常时,我发现了很多处理异常或不处理异常的示例。
一个例子,我发现非常有趣的是https://stackoverflow.com/a/137300/465292
using
using
另一个例子(来自https://stackoverflow.com/a/3279967/465292)
var request = WebRequest.Create(requestUri) as HttpWebRequest;
if (request != null)
对我来说似乎是假的,因为在doc中没有。 http://msdn.microsoft.com/en-us/library/bw00b1dc%28v=vs.110%29.aspx,WebRequest.Create()
返回null
Microsoft自己的示例http://msdn.microsoft.com/en-us/library/es54hw8e%28v=vs.110%29.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1,同时放置WebRequest
和& WebReponse
在一个试块中。
答案 0 :(得分:1)
总之,这取决于。如果您认为可以从该时间点抛出的异常中恢复,则try
/ catch
块的重点是。即您是否会重新尝试,因为您怀疑网络电话应该有效并希望在放弃之前给它一些消息?
这是个案基础。如果发生异常并且您不能/不想处理它,那么请不要在try
/ catch
中包装并让它上升,直到可以处理它为止。
与using
一样,这允许您释放内存,嵌套usings
很好,因为它可以确保您尽可能地处理对象。当然,根据您的操作,您可能希望在try
中明确地向下catch
/ finally
/ dispose
和finally
,但是通过案件交易。