考虑这个例子
var task =Task.Factory.StartNew(()=>Console.WriteLine("test"));
task.ContinueWith(antecendent =>
{
ExceptionProcessor.HandleError(task.Exception.Flatten());
}, TaskContinuationOptions.OnlyOnFaulted);
在此示例中,resharper预测task.Exception.Flatten()中可能存在空指针异常,因为它假定task.Exception可能为null。
但对于所有实际场景,它不会为null,因为参数TaskContinuationOptions.OnlyOnFaulted确保仅在发生异常时才调用该方法。
那么我如何告诉Resharper忽略所有类似的警告?
答案 0 :(得分:3)
我认为你有几种选择:
null
支票。我不喜欢#4,你会让你的代码不那么可读,只是为了让ReSharper感到高兴。我也不喜欢#3,这可能会大量污染你的代码。 #2更好,但我认为#1是最好的选择:“Posible NullReferenceException”总是会出现误报,所以你应该把它作为指导:“小心点,可能错误“,不是严格的”你必须解决这个问题。“
答案 1 :(得分:3)
Resharper支持团队已接受此错误,可在此处跟踪http://youtrack.jetbrains.com/issue/RSRP-316492