Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
| 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.