MSTEST0040: Nevytvádřujte v kontextech asynchronního void.
Vlastnost | Hodnota |
---|---|
ID pravidla | MSTEST0040 |
název | Nevytvádřujte v kontextech asynchronního voidu |
kategorie | Použití |
Oprava buď způsobuje chybu, nebo ji nezpůsobuje | Nepřerušované |
Povoleno ve výchozím nastavení | Ano |
Výchozí úroveň závažnosti | Varování |
Představeno ve verzi | 3.8.0 |
Existuje oprava kódu | Ne |
Příčina
Použití jakékoli metody kontrolního výrazu v metodě async void
, místní funkci nebo lambda.
Popis pravidla
Výjimky, které jsou v kontextu async void
vyvolané, zůstávají neošetřené. Neúspěšné aserce v metodě async void
budou ignorovány a nezpůsobí pád procesu při použití VSTest v rozhraní .NET Framework. V prostředí .NET může neúspěšný kontrolní výraz v metodě async void
při použití Microsoft.Testing.Platform nebo VSTest způsobit, že proces selže. V případech, kdy je přítomna vlastní SynchronizationContext
, která zachytí výjimku, selhávající kontrolní výraz může být tiše přehlédnut.
Jak opravit porušení
Refaktorovat kód tak, aby nepoužíval aserce v async void
.
Kdy potlačit upozornění
Nepotlačujte upozornění z tohoto pravidla.