- Chyby:
- Syntaktické vs. Sémantické Chyby:
- Syntaktické chyby jsou chyby v kódu, které porušují pravidla syntaxe jazyka. Například chybějící středník na konci řádku nebo špatně zapsaná syntaxe podmíněného výrazu. Tyto chyby jsou odhaleny při překladu kódu.
```csharp
Console.WriteLine("Hello, World!") //chybí středník (;)
```
- Sémantické chyby jsou chyby, které se týkají logiky programu a jsou obtížnější odhalit, protože syntaxe kódu je správná, ale kód nedělá to, co by měl. Například nesprávné použití proměnných nebo funkcí.
```csharp
int y "text"; // přiřazení řetězce do celočíselné proměnné
```
- Hledání Chyb:
- Ladění (Debugging):
- Provádění krokování kódu.
- Používání breakpointů.
- Výpis do konzole nebo logování informací pro sledování chování programu.
- Použití nástrojů pro sledování výkonu (profiling tools).
- Testování jednotlivých částí kódu pomocí unit testů.
- Použití nástrojů pro statickou analýzu kódu.
- Varování vs. Chyba:
- Varování:
- Varování jsou upozornění na možné problémy v kódu, které nezpůsobují okamžitý selhání kompilace nebo běhu programu, ale mohou vést k nežádoucímu chování nebo chybě v budoucnosti.
- Například nepoužitá proměnná, implicitní konverze dat, nebo zastaralé funkce.
- Chyba:
- Chyba způsobí selhání kompilace nebo běhu programu a znemožní jeho správné fungování.
- Například dělení nulou, chyby při práci s pamětí (segmentation faults), nebo přístup mimo rozsah pole.
- Příklady Chyb a Varování:
- Chyby:
- Dělení nulou: int x = 5 / 0;
- Index mimo rozsah pole: int[] arr = {1, 2, 3}; int y = arr[5];
![[]]
- Neinicializovaná proměnná: int z; Console.WriteLine(z);
- Varování:
- Nepoužitá proměnná: int a = 5; // var b = a + 3;
- Zastaralá metoda: string s = "Hello".ToLower(); //ToLower() je zastaralá metoda
- Implicitní konverze: int c = 10; double d = c; //Implicitní konverze z int na double