## [C# Exceptions (Try..Catch)](https://www.w3schools.com/cs/cs_exceptions.php)**
Výjimky jsou mechanismus pro zpracování chyb v programech. Umožňují programátorovi definovat speciální bloky kódu, které se spustí, když dojde k neočekávané chybě.
### **Princip**
Výjimky se spouštějí pomocí klíčového slova throw. Zpracovávají se pomocí bloků try, catch a finally.
### **Syntaxe**
```csharp
try
{
// *Block of code to try*
}
catch (Exception e)
{
// *Block of code to handle errors*
}
```
### **Příklady**
```csharp
try
{
int[] myNumbers = {1, 2, 3};
Console.WriteLine(myNumbers[10]);
}
catch (Exception e)
{
Console.WriteLine("Something went wrong.");
}
```
The output will be:
```
Something went wrong
```
- **Dělení nulou:**
```csharp
try
{
var vysledek = 10 / 0;
}
catch (DivideByZeroException ex)
{
Console.WriteLine("Nelze dělit nulou!");
}
```
- **Soubor nenalezen:**
```csharp
try
{
var soubor = File.OpenRead("neexistujici_soubor.txt");
}
catch (FileNotFoundException ex)
{
Console.WriteLine("Soubor nenalezen!");
}
```
### **Zpracování**
Zpracování výjimek zahrnuje:
- **Identifikace typu výjimky:** Pomocí bloku catch s konkrétním typem výjimky.
- **Záznam chyby:** Do logu nebo do jiné databáze.
- **Zobrazení zprávy uživateli:** Srozumitelným a užitečným způsobem.
- **Oprava chyby:** Pokud je to možné.
**Tipy:**
- Používejte výjimky pro neočekávané a neošetřitelné chyby.
- Pečlivě testujte kódy s výjimkami.
- Dodržujte konzistentní způsob zpracování výjimek.
- Existují i jiné metody pro zpracování chyb, například kódy návratu.
Dobré pochopení výjimek vám pomůže psát robustní programy, které se správně chovají i v případě chyb.