.Replace()导致异常,因为authorElement.QuerySelector(...)。InnerTextClean返回null。这非常罕见(1 / 100,000),所以我宁愿使用try catch而不是检查null。
author.salescount = Convert.ToInt32(authorElement.QuerySelector("div.sale-info.is-hidden-phone > em").InnerTextClean.Replace(",", ""));
所以我的问题是,我是否必须将其分解为多行,并且仅尝试捕获失败的单个功能?
.ToInt32()显然不能接受null,但是我认为try catch块将在异常发生时立即抛出该异常。这样我就可以包装整个东西。
我想我已经解决了,是我做错了,和/或有没有我未考虑的东西?
答案 0 :(得分:0)
我将处理空值而不是try
/ catch
string inner = authorElement.QuerySelector("div.sale-info.is-hidden-phone > em")?.InnerTextClean?.Replace(",", "");
int temp;
author.salescount = int.TryParse(inner, out temp) ? temp : -1; // -1 in case of null