- 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