Prozkoumání výjimek a způsobu použití výjimek
- 6 min
Dříve v tomto modulu jste se dozvěděli, že chyby modulu runtime v jazyce C# se nazývají výjimky a že je potřebujete "zachytit", než dojde k chybovému ukončení aplikace. Vážně? Zachycení výjimek před tím, než může dojít k chybovému ukončení aplikace, zní spíše jako videohry než psaní aplikace. Co tedy přesně znamená "zachytit" výjimku? Pokud chcete na tuto otázku odpovědět, musíte začít tím, že se blíže podíváte na to, co je výjimka.
Co jsou výjimky?
Tady je formální definice, která popisuje, co je výjimka a jak se výjimka používá v aplikaci jazyka C#:
V jazyce C# se chyby v programu za běhu šíří prostřednictvím programu pomocí mechanismu označovaného jako výjimky. Výjimky jsou vyvolány kódem, který narazí na chybu a zachytil kód, který může chybu opravit. Výjimky můžou vyvolat modul runtime .NET nebo kód v programu. Výjimky jsou reprezentovány třídami odvozenými z výjimky. Každá třída identifikuje typ výjimky a obsahuje vlastnosti s podrobnostmi o výjimce.
Důležité
Toto trénování nevyžaduje hluboké porozumění třídám .NET. Nemějte obavy, pokud je tato definice trochu matoucí. Výjimky můžete v kódu použít bez hlubšího porozumění třídám.
Dokumentace Microsoftu k výjimkám obsahuje podrobné informace. Tato definice však poskytuje informace, které potřebujete právě teď. Konkrétně potřebujete porozumět dvěma věcem:
- Potřebujete pochopit, jaké výjimky jsou.
- Potřebujete pochopit, jak ve svých aplikacích používat výjimky.
Výjimku si můžete představit jako proměnnou, která má další možnosti. Stejný typ věcí můžete provádět s výjimkami, které děláte s proměnnými, například:
- Můžete vytvořit různé typy výjimek.
- K obsahu výjimky se dostanete.
Co znamená "vyvolat" a "zachytit" výjimku?
Termíny "throw" a "catch" lze vysvětlit vyhodnocením definice výjimky.
Druhá věta definice říká"Výjimky jsou vyvolány kódem, který narazí na chybu a zachytil kód, který může chybu opravit". První část této věty vám říká, že výjimky jsou vytvořeny modulem runtime .NET, když dojde k chybě v kódu. Druhá část věty vám řekne, že můžete napsat kód, který zachytí výjimku, která se vyvolá. Kromě toho lze kód, který zachytí výjimku, použít k dokončení opravné akce, což snad zmírní situaci způsobené kódem, který způsobil chybu. Jinými slovy, můžete napsat kód, který chrání vaši aplikaci, když dojde k chybě.
Po vyhodnocení druhé věty definice znáte následující:
- Při vytváření kódu dojde k chybě při vytváření výjimky za běhu.
- Výjimku je možné považovat za proměnnou s některými dalšími funkcemi.
- Můžete napsat kód, který přistupuje k výjimce a provede nápravnou akci.
Zbývající část definice vám řekne, že pokud modul runtime .NET zjistí chybu, vygeneruje výjimku. Vygenerovaná výjimka obsahuje informace o chybě, ke které došlo. Váš kód může zachytit výjimku a problém opravit pomocí informací uložených v výjimce.
Rekapitulace
Tady je několik důležitých věcí, které je potřeba si z této lekce zapamatovat:
- Výjimky se používají v jazyce C# k šíření chyb za běhu a jsou reprezentovány třídami odvozenými z
Exceptiontřídy. - Výjimky jsou vyvolány kódem, který narazí na chybu a zachytil kód, který může chybu opravit.
- Když dojde k zachycení výjimky, může kód získat přístup k jeho obsahu a provést nápravnou akci, která chybu zmírní.
- Modul runtime .NET generuje výjimky, když zjistí chybu a výjimka obsahuje informace o typu chyby, ke které došlo.