c# – 应该关闭/处理WebException.Response.GetResponseStream()吗?

前端之家收集整理的这篇文章主要介绍了c# – 应该关闭/处理WebException.Response.GetResponseStream()吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我捕获.NET WebException时,我应该关闭/处置Response.GetResponseStream()吗?

MSDN example不会在例外情况下关闭或处置任何内容.

许多SO answers建议处理响应和/或流.

我处理了流,这引起了很大的问题.因为GetResponseStream()(总是?/有时?)返回相同的实例.因此,当我获得响应流然后处理它时,可能会将异常重新抛出到另一个层,该层也会获得响应流,它将被处理掉并且不可读并因此而抛出更多异常.

解决方法

您应该处置该流,因为它可能拥有资源.但只有当你完成它时才处理掉它.在您不再需要流之前,只需停止处理它.让流的最后一个用户处理它.

也许,您应该只调用一次GetResponseStream()并明确地传递流,以便明确它是相同的流.

猜你在找的C#相关文章