Új hozzászólás Aktív témák
-
modder
aktív tag
válasz
Sk8erPeter #8994 üzenetére
Én csak ezzel nem értek egyet:
a kivételkezelés akkor is ezerszer átláthatóbb hibakezelési formaKivételkezelést akkor érdemes használni, amikor egy mély hívássorozat alján keletkezik valahol egy kivételes hiba, és ezt sokkal fentebbi függvényben akarod lekezelni. Ilyen például az adatbázis absztrakciós rétegekben egy mysql hiba, ami, ha jó a kódod, ritkán fordul elő, és általában elég csak annyira foglalkozni vele, hogy loggolod.
Vissza a fenti mondathoz. Ha a kivételkezelést általános programozási gyakorlattá teszed, annak megvan az a hátránya, hogy később, ha ránézel a kódra, nem biztos, hogy fogod tudni, hogy a kivételedet hol dobod (ahogy említetted, amíg ténylegesen nem történt ilyen exception, akkor stacktrace), és amikor refaktorálod a kódot, fogni fogod a fejed.
Még egy dolog.
Ha az osztályodat majd újra fel akarod használni, nem szabad megfeledkezni arról, hogy milyen kivételeket dobhat. Amíg jól van dokumentálva a kódod, addig nem biztos, hogy fejtörést fog okozni, de ha már kevesebb időt töltesz a dokumentálással, valahol újra fel akarod használni a kódodat, szintén fogni fogod a fejed, mert fejlesztés során olyan exceptionöket fog dobálni az osztályod, amire nem számítottál korábban, és újra meg újra le kell őket kezelni. Nem is beszélve arról, hogy az exceptiönök szaporodhatnak, ahogy az osztályod egyre többet tud.Ezt a Dependency Injectionhöz tudom hasonlítani. Ott arról van szó, hogy bizonyos műveleteknek vannak előfeltételei, előfeltétel objektumai, és addig átlátható, amíg a függvények bemenetein megjelennek ezek az előfeltételek, mert addig nyomonkövethető a kdóban az előfeltétel.
Egy szó, mint száz. Nem érdemes általános gyakorlattá tenni a kivételek dobálását. Form validálásnál még talán elmegy. De ezt is lehet hit kérdéssé tenni, nem muszáj rám hallgatni
Új hozzászólás Aktív témák
- Azonnali készpénzes AMD Radeon RX 6000 sorozat videokártya felvásárlás személyesen/csomagküldéssel
- AKCIÓ! Csere-Beszámítás! Manli RTX 3070Ti 8GB GDDR6X Videokártya!
- BESZÁMÍTÁS! MSI B450 TomaHawk R5 3600 16GB DDR4 512GB SSD RX5500 XT 8GB Rampage SHIVA TT 530W
- Apple iPhone 13 128GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! Dell Precision 5820 XL Tower PC - Xeon W-2123 112GB RAM 512GB SSD 1TB RX 580 8GB Win 11
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged