Resharper发出警告
可能' null'使用' [NotNull]'分配给实体属性
为行
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,因为应该已经抛出了 WebException (或未处理的异常)(我如果发生任何错误,则处理并抛出新的自定义异常。
如果没有抛出 WebException , replyStream 是否可以为null?
答案 0 :(得分:2)
replyStream
不能是null
。如果GetResponse()
成功,则GetResponseStream
始终具有值。如果出现任何问题,则抛出WebException
。 documentation of GetResponse()表示以下
如果抛出WebException,请使用的Response和Status属性 确定服务器响应的异常。
因此,您也可以将catch
子句扩展到句柄webex.Response
。
答案 1 :(得分:1)
不,不是真的,但ReSharper不知道。 GetResponseStream()返回一个Stream对象,该对象可能是null,就像返回param的任何其他函数一样,是一个引用类型,但StreamReader特别指出它的输入不能为null。