正确处理.NET中WebRequest和WebReponse生成的异常

时间:2014-07-01 15:32:32

标签: c# asp.net .net exception exception-handling

在浏览MS示例和Stackoverlow示例中,了解如何处理WebRequestHttpWebRequest)和WebReponseHttpWebResponse)生成的异常时,我发现了很多处理异常或不处理异常的示例。

一个例子,我发现非常有趣的是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.aspxWebRequest.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在一个试块中。

1 个答案:

答案 0 :(得分:1)

总之,这取决于。如果您认为可以从该时间点抛出的异常中恢复,则try / catch块的重点是。即您是否会重新尝试,因为您怀疑网络电话应该有效并希望在放弃之前给它一些消息?

这是个案基础。如果发生异常并且您不能/不想处理它,那么请不要在try / catch中包装并让它上升,直到可以处理它为止。

using一样,这允许您释放内存,嵌套usings很好,因为它可以确保您尽可能地处理对象。当然,根据您的操作,您可能希望在try中明确地向下catch / finally / disposefinally,但是通过案件交易。