Sdílet prostřednictvím


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.