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

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

Hasonló előadás


Az előadások a következő témára: "TÁMOP 2.2.3-07/1-2F-2008-0011 Informatikai gyakorlatok 11. évfolyam Kivételek kezelése, ellenőrzött adatbevitel Czigléczky Gábor 2009."— Előadás másolata:

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

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) { // hibaüzenet vagy hibajavítás } … 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 5); Ügyeljünk a helyesen tagadott feltételre! Egészítsük ki kivételkezeléssel is!


Letölteni ppt "TÁMOP 2.2.3-07/1-2F-2008-0011 Informatikai gyakorlatok 11. évfolyam Kivételek kezelése, ellenőrzött adatbevitel Czigléczky Gábor 2009."

Hasonló előadás


Google Hirdetések