Sdílet prostřednictvím


Kontrola výjimky pomocí pomocné rutiny výjimky

Řešení výjimek je běžným problémem bez ohledu na vaši technologii nebo úroveň odborných znalostí. Může to být frustrující prostředí, které zjišťuje, proč výjimky způsobují problémy ve vašem kódu. Při ladění výjimky v sadě Visual Studio chceme tuto frustraci zmenšit tím, že vám poskytneme relevantní informace o výjimce, které vám pomůžou rychleji ladit váš problém.

Pomocník výjimky

Pozastavit na výjimce

Když se ladicí program přeruší na výjimce, zobrazí se napravo od tohoto řádku kódu ikona chyby výjimky. U ikony výjimky se zobrazí pomocník pro nemodální výjimku.

Pomocná rutina výjimky vedle řádku kódu

Kontrola informací o výjimce

V pomocné rutině výjimky můžete okamžitě přečíst typ výjimky a zprávu o výjimce a informace o tom, jestli byla výjimka vyvoláná nebo neošetřená. Vlastnosti objektu Výjimky můžete zkontrolovat a zobrazit kliknutím na odkaz Podrobnosti zobrazení.

Analýza odkazů null

Počínaje sadou Visual Studio 2017 pro kód .NET i C/C++ se při dosažení NullReferenceException nebo an AccessViolationzobrazí informace o analýze hodnoty null v pomocné rutině výjimky. Analýza se zobrazí jako text pod zprávou o výjimce. Na obrázku níže se informace zobrazují jako "s was null".

Pomocná analýza výjimek s hodnotou null

Poznámka:

Analýza odkazů null ve spravovaném kódu vyžaduje .NET verze 4.6.2. Analýza null se v současné době nepodporuje pro Univerzální platforma Windows (UPW) a žádné jiné aplikace .NET Core. Je k dispozici pouze při ladění kódu, který nemá žádné optimalizace kódu ZA běhu (JIT).

Konfigurace nastavení výjimek

Ladicí program můžete nakonfigurovat tak, aby se přerušil, pokud je vyvolána výjimka aktuálního typu z části Nastavení výjimek pomocníka výjimky. Pokud je ladicí program pozastavený na vyvolání výjimky, můžete pomocí zaškrtávacího políčka zakázat přerušení u daného typu výjimky, když je vyvolán v budoucnu. Pokud při vyvolání v tomto konkrétním modulu nechcete tuto konkrétní výjimku přerušit, zaškrtněte políčko podle názvu modulu v části Kromě případů, kdy je vyvolána z: v okně Nastavení výjimky.

Kontrola vnitřních výjimek

Pokud má výjimka jakékoli vnitřní výjimky (InnerException, můžete je zobrazit v pomocné rutině výjimky. Pokud existuje více výjimek, můžete mezi nimi přecházet pomocí šipek vlevo a doprava zobrazených nad zásobníkem volání.

Pomocná rutina výjimky s vnitřní výjimkou

Kontrola výjimek opakování

V případech, kdy byla thrown výjimka pomocníkem výjimky, zobrazí zásobník volání od prvního vyvolání výjimky. Pokud byla výjimka vyvolán vícekrát, zobrazí se pouze zásobník volání z původní výjimky.

Pomocník výjimky s výjimkami rethrown

Kontrola asynchronních výjimek (.NET)

Počínaje rozhraním .NET 9 ladicí program sady Visual Studio automaticky přeruší, když asynchronní metoda úlohy vyvolá výjimku v kódu rozhraní .NET Framework. To usnadňuje ladění asynchronního kódu, zejména v ASP.NET, protože výjimky jsou často vyvolány napříč asynchronními hranicemi.

Snímek obrazovky pomocné rutiny výjimky s asynchronní metodou

Zobrazení zásobníku volání

Počínaje sadou Visual Studio 2022 verze 17.3 můžete zobrazit rámce zásobníku výjimek v okně Zásobník volání. U asynchronních výjimek se tím přidá možnost rychle načíst symboly nebo vyhledat zdroje a přejít přímo na web výjimky. Rámce zásobníku výjimek v okně Zásobník volání poskytují standardní funkce zásobníku volání, jako je automatická navigace, rychlé přepínání mezi snímky, načtení symbolů a možnosti dekompilu pro návrat ke zdrojovému kódu, kde došlo k výjimce.

Pomocník pro výjimky se zásobníkem volání

Získání pomoci s AI

Pokud máte Copilot, můžete získat pomoc s AI při ladění výjimek. Stačí vyhledat tlačítko Zeptat se zkopírovaného objektuSnímek obrazovky s tlačítkem Zeptat se copilotu. V těchto scénářích už Copilot zná kontext vašich otázek, takže nemusíte v chatu zadávat kontext sami. Další informace naleznete v tématu Ladění pomocí Copilotu.

Sdílení ladicí relace s Live Share

Z pomocníka výjimky můžete spustit relaci Live Share pomocí odkazu Spustit relaci Live Share.... Každý, kdo se připojí k relaci Live Share, uvidí pomocníka výjimky spolu s dalšími informacemi o ladění.