can webrequest.getResponse().getResponsEstream()返回null而无需web



resharper给出警告

可能使用'[notnull]'属性

对实体的" null"分配

for Line

var strmR = new StreamReader(replyStream);

在以下代码中(详细删除了详细的异常处理)。

        Stream replyStream;
        string reply;
        var query = _serverBaseUrl + queryText;
        var wreq = WebRequest.Create(query);
        wreq.Timeout = _serverTimeoutLimit;
        try
        {
            replyStream = wreq.GetResponse().GetResponseStream();
            var strmR = new StreamReader(replyStream);
            reply = strmR.ReadLine();
        }
        catch (WebException webex)
        {
            switch (webex.Status)
            {
              /*throw new exceptions*/
            }
        }
        replyStream.Close();
        return reply;

我的想法是,我不需要检查 replystream null,因为A webException (或者不应该进行过例外)如果发生任何错误),然后投掷新的自定义)。

是否有可能在没有 webException 的情况下被丢弃?

replyStream不能是 null。如果GetResponse()成功,则GetResponseStream始终具有值。如果有什么问题,则会抛出WebException。GetResponse()的文档说以下

如果抛出了WebException,请使用响应和状态属性 确定服务器响应的例外。

因此,您也可以扩展catch子句webex.Response

否,不是真的,但是Resmater不知道。getResponseStream()返回一个流对象,该对象可能像任何其他返回参数的函数一样为null,但streamReader专门指出其输入不能为null。

最新更新