Kezdőoldal » Számítástechnika » Programozás » Miért jobb a kivételkezelés...

Miért jobb a kivételkezelés mint egy egyszerű if elágazás?

Figyelt kérdés

2017. nov. 23. 19:42
1 2
 1/12 Szirty ***** válasza:
47%
Amikor vársz valakit miért jobb a kapucsengő használata mint az hogy ülsz az ablaknál egész nap és fél percenként kinézel?
2017. nov. 23. 19:44
Hasznos számodra ez a válasz?
 2/12 anonim ***** válasza:
Azért, mert azon rögtön látszik, hogy kivételkezelés és nem a fő algoritmushoz tartozik. Különben meg lehet oldani ifekkel, mindenféle rejtélyes konstansok visszatérési értékként való használatával, mint pl. C-ben kellett.
2017. nov. 23. 19:52
Hasznos számodra ez a válasz?
 3/12 anonim ***** válasza:
Nem jobb.
2017. nov. 23. 20:13
Hasznos számodra ez a válasz?
 4/12 anonim ***** válasza:
29%

Na, a sok ostoba válasz mutatja az itteni színvonalat...


A kivételkezelés lényege az üzleti logika és a hibakezelés szétválasztása.

Ha minden egyes függvényről vizsgálni kell, hogy helyesen futott-e le, azt hatalmas mértékben megbonyolítja a (néha amúgy is túlbonyolított) kódot és eltereli a figyelmet arról, amit a kód valójában meg akar valósítani.

A másik előnye, hogy a legtöbb esetben a legtöbb hibát nagyon hasonló módon kezeljük. Általában kiírjuk, hogy milyen hiba történt és megállítjuk a program futását.

Ezt kivételekkel meglehet egységesen, kódismétlés nélkül tenni.


Az viszont természetesen nem igaz, hogy mindig jobb a kivétel, mint egy helyességet jelző flag.

Ha (gyakran, az üzleti logika részeként) várható eset az, hogy valamilyen funkció hibára fut, akkor nem érdemes kivételt dobni, mert a legtöbb rendszeren elég erőforrás igényes és lassú.

2017. nov. 23. 20:31
Hasznos számodra ez a válasz?
 5/12 anonim ***** válasza:

"Visítok!!!"


De nehogy kijavítsd a hibáit, mert még a végén legalább két embernek hasznos tudást adnál...

2017. nov. 23. 20:46
Hasznos számodra ez a válasz?
 6/12 anonim ***** válasza:

Nincsenek benne semmilyen hibák.

Évek óta dolgozom az iparban, mint senior szoftverfejlesztő a clean code-ra specializálódva.

31%-os tapsihapsi meg rengetegszer bebizonyította már, hogy életében nem látott még egy középiskolai pascal feladatnál bonyolultabb kódot.

Csak azt nem értem, hogy miért nincs még kivágva innen?

2017. nov. 23. 21:02
Hasznos számodra ez a válasz?
 7/12 anonim ***** válasza:

A kivételkezelés lényege többes.

Egyrészt az a cél, hogy a hibák kezelése egységesüljön, másrészt, hogy hiba esetén a szükséges lépések automatizáltan végrehajtódjanak (pl. erőforrás felszabadítás, stb.), így nem kell azt a fejlesztőre terhelni, ami ráadásul újabb hibák forrása lenne, vagy lehetne, végül de nem utolsósorban a hibatűrés is cél. A nem kritikus hibák esetén ugyanis lehetőség van azok rendszer szintű lekezelésére és a program tovább futtatására, amely bizonyos esetekben abszolút kivánatos igény, ennek elmaradása ugyanis tetemes anyagi kárral is járhat.

2017. nov. 23. 21:02
Hasznos számodra ez a válasz?
 8/12 anonim ***** válasza:

"hiba esetén a szükséges lépések automatizáltan végrehajtódjanak (pl. erőforrás felszabadítás, stb.), így nem kell azt a fejlesztőre terhelni"

Miért nem azzal kezdted, hogy nem tudod mi az a kivételkezelés?

Linkeljünk róla egy Wikipedia cikket, vagy azt azért meg tudod találni magadtól is?

Áhh, miket feltételezek... [link]

2017. nov. 23. 21:08
Hasznos számodra ez a válasz?
 9/12 anonim ***** válasza:

Véletlenül mintha pont azt írná, amit én:


"Az ilyen hibajelenségek az alapvető utasításkészlettel régen nem voltak kezelhetőek (elkaphatóak). A normál hibakezelés általában körülményes, sok változó beiktatását és figyelését, valamint rengeteg feltételes utasítást igényel. Ezen túl nem is alkalmas arra, hogy például az operációs rendszer, vagy a processzor által küldött különféle jelzéseket, figyelmeztetőket elfogja. Így a programozónak kellett sok olyan sorral megtűzdelnie a kódjait, amelyek nem csak a helyet foglalták, de ormótlanná tették és le is lassították a program futását. Ha nem tette volna meg ezt, akkor hiba esetén az alkalmazása váratlan helyen megszakította volna a futását, és ezáltal a program használata adatvesztéssel járt volna."

2017. nov. 23. 21:16
Hasznos számodra ez a válasz?
 10/12 anonim ***** válasza:
Na, ne akard már elhitetni, hogy tudsz angolul... :)
2017. nov. 23. 21:21
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!