簡體   English   中英

Resharper false可能帶有任務並行庫的nullReferenceException警告

[英]Resharper false possible nullReferenceException warning with task parallel library

考慮這個例子

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忽略所有類似的警告?

我想你有幾個選擇:

  1. 忽略此實例中的警告。
  2. 將所有“Posible NullReferenceException”的嚴重性降低到類似提示,甚至不顯示。
  3. 通過注釋禁用此警告實例。
  4. 假裝ReSharper是正確的並添加null檢查。

我不喜歡#4,你會讓你的代碼不那么可讀,這樣ReSharper很高興。 我也不喜歡#3,這可能會大量污染你的代碼。 #2更好,但我認為#1是最好的選擇:“Posible NullReferenceException”總是會出現誤報,所以你應該用它作為指導:“小心點,有些東西可能是錯的”,而不是嚴格的“你必須解決這個問題。“

Resharper支持團隊已接受此錯誤,可在此處跟蹤http://youtrack.jetbrains.com/issue/RSRP-316492

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM