Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Informatikai gyakorlatok 11. évfolyam

Hasonló előadás


Az előadások a következő témára: "Informatikai gyakorlatok 11. évfolyam"— Előadás másolata:

1 Informatikai gyakorlatok 11. évfolyam
Kivételek kezelése, ellenőrzött adatbevitel Czigléczky Gábor 2009 TÁMOP /1-2F

2 Kivételek (1.) Egy hibátlannak tűnő programot is „ki lehet akasztani”.
Kivételről akkor beszélünk, amikor váratlan, előre nem látható hiba történik a programban. Ilyen hiba lehet: programozási (szemantikai hiba), vagy hardveres (például nem írható vagy olvasható egy fájl), vagy szoftveres (például nem megfelelő formátumú adatbevitel vagy bemenő fájl, nullával osztás).

3 Kivételek (2.) Tipikus kivételek (ld. előző egység):
NullReferenceException: Az objektumhivatkozás nincs beállítva semmilyen objektumpéldányra. (Egy objektumot deklaráltunk, de még nem hoztuk létre a memóriában. ) ObjectDisposedException: Nem lehet bezárt TextReader objektumból olvasni. (Bezárt fájlból próbáltunk olvasni.)

4 Kivételek (3.) Tipikus kivételek (ld. előző egység):
FormatException: Nem megfelelő a bemeneti karakterlánc formátuma. (Ez a leggyakoribb hiba, rossz formátumú adatot olvas be a program, és nem tudja átkonvertálni adott típusúra.) IndexOutOfRangeException : Az index a tömb határain kívülre mutatott. (Programozási hiba, rosszul indexelünk egy tömböt.)

5 Kivételek (4.) Gyakori kivétel még:
DivideByZeroException: Kísérlet történt nullával való osztásra. (Csak egész számok osztásakor fordulhat elő.) A kivételkezelés módja, hogy a „veszélyes” utasításokat egy kivételkezelő blokkba zárjuk, ami megpróbálja „elkapni” a dobott kivételeket. Így az esetlegesen bekövetkező hibajelenségeket biztonságosan le tudjuk kezelni.

6 Kivételek kezelése try { // problémás utasítások } catch (kivételtípus1) // hibaüzenet vagy hibajavítás catch (kivételtípus2) … finally // olyan utasítások, amiknek még kivétel esetén is le kell futnia, nem kötelező

7 Példa: nullával osztás kezelése
try { int x = int.Parse(textBox1.Text); int y = int.Parse(textBox2.Text); int z = x / y; } catch (DivideByZeroException) MessageBox.Show("Nullával nem oszthatunk!");

8 Általános kivétel kezelése
Több kivételt is kezelhetünk (lehet több catch blokk is) A módszer hátránya, hogy csak megadott kivételeket tudunk elkapni, nem tudunk mindenre felkészülni Általános kivételkezelés (a kivétel típusának specifikálása nélkül): catch { MessageBox.Show("Hiba történt a művelet végrehajtása közben!"); }

9 Ellenőrzött adatbevitel (1.)
Erre akkor van szükség, ha rá akarjuk kényszeríteni a felhasználót, hogy megfelelő értéket írjon be. Például: osztályzat beolvasása esetén csak 1 és 5 közötti értéket fogadunk el. Megvalósítás: hátultesztelő ciklussal do { // adat beolvasása } while (a_beolvasott_érték_rossz);

10 Ellenőrzött adatbevitel (2.)
A módszer csak úgy alkalmazható, ha az adat beolvasását könnyen meg tudjuk ismételni (pl. InputBox feldobásával). Példa: osztályzat beolvasása do { string s = Interaction.InputBox("Kérem a következő osztályzatot:", "Adatbevitel","0",100,100); szam = int.Parse(s); } while (szam<1 || szam>5); Ügyeljünk a helyesen tagadott feltételre! Egészítsük ki kivételkezeléssel is!


Letölteni ppt "Informatikai gyakorlatok 11. évfolyam"

Hasonló előadás


Google Hirdetések