09. 02. 2006. | #1 |
Goran Pilipović
Sir Write-a-Lot
|
PHP5 Exceptions
Kao što verovatno svi znate, PHP5 ima mogućnost postavljanja Exceptions kao većina ozbiljnih programskih jezika. Pošto prepravljam neke klase da budu PHP5 only, interesuje me koja je, osim semantičke, prednost upotrebe Exceptions u odnosu na neko klasično "prikupljanje grešaka" u kodu.
Recimo, imamo najgori slučaj i lošu programersku praksu tipa: PHP kôd:
Onda imam slučaj koji ja koristim (u PHP < 5) PHP kôd:
Koja je prednost (performanse, memorija... whatever) ako ja prepravim moj sistem da koristi exceptions, na primer ovako: PHP kôd:
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
09. 02. 2006. | #2 |
Direktor Kombinata
Invented the damn thing
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
|
Hvata greške na jednom mestu i ne brineš gde će se desiti (koliko "duboko"). Ovo je izuzetno bitno kod kompleksnih aplikacija. Primer:
PHP kôd:
PHP kôd:
Nije da se ne može postići klasičnim metodama, ali to je već hakeraj i podrazumeva puno prljavog petljanja koje samo čini kod složenijim i podložnijim greškama. Izuzeci čine život lakšim
__________________
activeCollab - Project Management and Collaboration Tool iz domaće kuhinje | area51.rs - Blog Poslednja izmena od Ilija Studen : 09. 02. 2006. u 18:25. |
09. 02. 2006. | #3 | |||
Goran Pilipović
Sir Write-a-Lot
|
Hvala Ilija na odgovoru, moje pitanje je bilo vezano za nešto drugo:
Citat:
Citat:
Citat:
Znači šta se desi kada se raise-uje (ili ovde "throw") exception a nema catch? I koliko su važne exceptions uopšte za tako kratak run-time kao što je run-time PHP scripta?
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
|||
09. 02. 2006. | #4 | |
Direktor Kombinata
Invented the damn thing
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
|
Sorry, bio sam umoran pa sam temu skontao u kontekstu "Šta će mi uopšte exception kad mogu xxx"
Što se performansi tiče da predstavljaju ozbiljan performance problem to bi bilo već negde naglašeno (u manualu, u korisničkim komentarima?) Objekat kao objekat, ne bi trebalo da unosi probleme. No, postoji jedan način da se to sazna Pojuriš skripticu u kojoj će proveravati koliko vremena treba da se exception "izvuče" i obradi pa to uporediš sa metodom koji si ranije koristio. PS: Znam da znaš, ali nije od zgoreg da ponovim: premature optimization is the root of all evil. Napravi skriptu tako da je kvalitetno iskodirana pa onda juri uska grla. Nemoj odbaciti exceptione i neke druge OO stvari samo zato što ti se čini da mogu da predstavljaju performance problem Citat:
__________________
activeCollab - Project Management and Collaboration Tool iz domaće kuhinje | area51.rs - Blog Poslednja izmena od Ilija Studen : 09. 02. 2006. u 20:54. |
|
09. 02. 2006. | #5 |
Goran Pilipović
Sir Write-a-Lot
|
Nisam mislio da mi ne treba exception, nisam cak ni pomislio da ih odbacim, niti mislim da mogu da budu performance problem... na kraju ne mogu biti lošije od "dosadašnjih rešenja", naprotiv, pitam se da li su ne bilo koji način exceptions optimizovane da poboljšavaju performanse ili se ipak na kraju svodi na to da je, što se resursa tiče, potpuno sve jedno.
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
09. 02. 2006. | #6 |
Direktor Kombinata
Invented the damn thing
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
|
Ja ne vidim na koji bi način exceptioni doneli poboljšanje performansi pošto su oni dodatak na PHP4, ne izmena postojećeg sistema (PHP4 nije imao sistem za baratanje izuzecima). Ne znam stvarno sa čime bi mogao uporediti exceptione osim sa nekim custom rešenjem za PHP4...
__________________
activeCollab - Project Management and Collaboration Tool iz domaće kuhinje | area51.rs - Blog |
09. 02. 2006. | #7 |
Goran Pilipović
Sir Write-a-Lot
|
To sam i pretpostavljao...
Možda ću i odustati od prepravljanja php4 koda u php5.
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
Go PHP5 | Ilija Studen | PHP | 1 | 10. 02. 2008. 21:12 |
PHP5 Overloading | dinke | PHP | 20 | 03. 08. 2007. 22:50 |
PHP5 Exceptions | dee | PHP | 2 | 16. 07. 2007. 12:12 |
PHP5 only | zira | PHP | 13 | 03. 03. 2007. 14:02 |
Smarty za PHP5 | bluesman | PHP | 5 | 08. 08. 2005. 22:19 |