Lekce 5 - Vlákna - Výjimky a Deadlock v C# .NET
V minulé lekci, Vlákna - Bezpečnost vláken v C# .NET, jsme se zabývali bezpečností vláken v C# .NET. Vybrali jsme si jednu techniku sdílení dat mezi vlákny, kterou jsme implementovali do příkladu.
V dnešním C# .NET tutoriálu se budeme věnovat výjimkám, jejich zachycení a propagaci. Na praktickém příkladu si zkusíme nasimulovat Deadlock s tímto výstupem:
Konzolová aplikace
Thread 1 zamkl zámek 1.
Thread 2 zamkl zámek 2.
Thread 2 čeká na zámek 1...
Thread 1 čeká na zámek 2...
Výjimky
Výjimky jsou významným aspektem programování, který nám umožňuje elegantně reagovat na neočekávané události během provádění programu.
Výjimka může být způsobena například těmito faktory:
- chyby v kódu,
- chybějící nebo nedostupné soubory,
- neplatné vstupy od uživatele nebo problémy v systémových voláních.
Když nastane výjimka, běžící program přeruší svůj běh. Program začne hledat část kódu, která se nazývá výjimečný blok nebo výjimečný handler, který může výjimku zachytit a řádně zpracovat.
Zachycení výjimek
Výjimky lze zachytit pomocí konstrukce try-catch. Blok
try obsahuje kód, ve kterém může dojít k vzniku výjimky. Blok
catch definuje zpracování této výjimky. Ukažme si zápis v
kódu:
...konec náhledu článku...
Pokračuj dál
Došel jsi až sem a to je super! Věříme, že ti první lekce ukázaly něco nového a užitečného.
Chceš v kurzu pokračovat? Přejdi do prémiové sekce.
Omezená nabídka: Nauč se vše a ušetři
Obsah článku spadá pod licenci Premium, koupí článku souhlasíš se smluvními podmínkami.
- Neomezený a trvalý přístup k jednotlivým lekcím.
- Kvalitní znalosti v oblasti IT.
- Dovednosti, které ti pomohou získat vysněnou a dobře placenou práci.
Popis článku
Požadovaný článek má následující obsah:
V C# .NET tutoriálu se budeme věnovat výjimkám, jejich zachycení a propagaci. Na praktickém příkladu si zkusíme nasimulovat Deadlock.
Kredity získáš, když podpoříš naši síť. To můžeš udělat buď zasláním symbolické částky na podporu provozu nebo přidáním obsahu na síť.
David se informační technologie naučil na