12. Hibakezelés¶
Hibák előfordulása¶
Fordítási idejű
szintaktikai
típus hiba
érvénytelen nevek
Linkelési hibák
érvénytelen szimbólum
Futás idejű hibák
Dangling pointer
Memory leak
Stack overflow/underflow
I/O hibák
Típusbiztonság¶
Szigorúan típusos nyelveknél garantált, hogy egy adott típusú változó/objektum csak bizonyos értékeket vehessen fel.
Az elvégezhető műveletek köre is le van szűkítve.
Explicit hibakezelés¶
A hibákat jelezhetjük (programozási nyelvtől függően) hibakódokkal, vagy kivétel objektumokkal.
A hibakódok előnye, hogy könnyebben implementálhatóak (például enumerációkkal megadva).
A kivétel objektumok OOP nyelvekre jellemzőek. Az eseményhez tartozó részleteket magába az objektumba helyezhetjük el.
Figyelem
A kivétel objektumokat nem csak hibakezelésre használjk!
Implicit hibakezelés¶
A hibát a program nem jelzi külön.
A beépített hibakezelő rutinok megoldják a problémát, majd annak megfelelően adnak vissza valamilyen értékeket.
Tesztek¶
A program bizonyos részeihez be- és kimenet párokat adhatunk meg.
Legegyszerűbb változata az egységteszt.
Assertion-ön¶
A program kódjában definiálunk egy állítást, amelynek a futás során igaz értékűnek kell lennie.
Hogy ha az assertion sérül (assertion fail) az programozói hibát jelez.
Kérdések¶
A program fejlesztése és használata során mikor jelentkezhetnek hibák?
Mire szolgálnak az assertion-ök?