Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Informatikai gyakorlatok 11. évfolyam
Hibák, hibaüzenetek és kezelésük Czigléczky Gábor 2009 TÁMOP /1-2F
2
Hibák csoportosítása A programozás során óhatatlanul hibákat vétünk.
Ezeket a hibákat két fő csoportra tudjuk osztani: Szintaktikai: formai hiba, azaz a programozási nyelv szabályainak figyelmen kívül hagyása. Szemantikai: tartalmi hiba, azaz egy rossz vagy rosszul kódolt algoritmus miatt a program nem vagy hibásan működik.
3
Szintaktikai hibák (1.) A fordítóprogram ezeket minden esetben kiszűri. A szintaktikai hibás program nem lefordítható, amíg mindent ki nem javítottunk benne. A fejlesztői környezet sok esetben felajánlja a hiba javítását. Videó: Szintaktikai hibák és javításuk
4
Szintaktikai hibák (2.) Leggyakoribb hibaüzenetek:
’karakter’ expected (Az adott helyről a megadott karakter – ; { } – hiányzik.) Cannot implicitly convert type ’típus1’ to ’típus2’ (Nem lehet automatikusan az egyik típusról a másikra konvertálni. Tipikus hiba, amikor string típusú értéket akarunk valamilyen szám típusú változónak értékül adni.)
5
Szintaktikai hibák (3.) Leggyakoribb hibaüzenetek:
Operator ’op’cannot be applied to operands of type ’típus1’ and ’típus2’ (Az adott műveleti jel nem alkalmazható az adott típusokra, például egy string és egy int típusú változó nem osztható el egymással.) Use of unassigned local variable ’változónév’ (Az adott változót úgy akartuk használni, hogy nem adtunk neki előtte értéket.)
6
Szintaktikai hibák (4.) Leggyakoribb hibaüzenetek:
The name ’név’ does not exist in the current context (Leggyakrabban akkor fordul elő, amikor elgépelünk valamit: egy változó nevét, vagy kulcsszót, és a fordító számára az így keletkezett hibás név nem értelmezhető az adott blokkban.) Megjegyzés: a C# nyelvben blokknak nevezzük a programkód azon részét, amit a { és } jelek fognak közre.
7
Szemantikai hibák (1.) A program formailag hibátlan, azonban mégsem működik jól. Hibajelenségek: Nem a várt eredményt adja Nem fejeződik be a futása („lefagy”) Hibaüzenettel leáll a futása (kivételt dob, lásd a következő fejezetben)
8
Szemantikai hibák (2.) Lehetséges okok: Nem a várt eredményt adja
Rossz algoritmusból indultunk ki, vagy rosszul kódoltunk (például ciklusban nulláztunk, vagy osztottunk, amikor nem kellett volna). Nem fejeződik be a futása („lefagy”) Elrontottuk a ciklusfeltételt, vagy nem változtatjuk a ciklusváltozó értékét a ciklusmagban, ezért végtelen ciklus az eredmény. Hibaüzenettel leáll a futása (kivételt dob, lásd a következő fejezetben) Nullával osztottunk, vagy szám helyett szöveget írtunk be.
9
Hibakeresési eszközök (1.)
Lépésenkénti futtatás Az F11 billentyű lenyomásával a programot soronként, utasításonként futtathatjuk, és figyelhetjük az eredményeket. Lokális változók figyelése (Locals) Figyelemmel tudjuk kísérni a lokális változók aktuális értékét, így láthatjuk, melyik lépésben válik rosszá az eredmény. Töréspont beiktatása A program futását egy adott helyen megszakíthatjuk, ahol úgy sejtjük, hogy „elromlik”. Videó: Hibakeresési és nyomkövetési eszközök
10
Hibakeresési eszközök (2.)
Hibás program javítási lépései: Töréspont beiktatása Oda célszerű elhelyezni, ameddig szerintünk jól működik a program. Lépésenkénti futtatás A törésponttól indítva futtassuk lépésenként a programot. Lokális változók figyelése (Locals) A lépésenkénti futtatás közben kísérjük figyelemmel a lokális változók aktuális értékét. Javítás, és azonnali folytatás A hiba kijavítása után használhatjuk az „Edit and Continue” funkciót, azaz a programot a teljes újrafordítás nélkül kipróbálhatjuk, és rögtön láthatjuk a javítás eredményét.
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.