Pogledajte određenu poruku
Staro 14. 01. 2006.   #43
degojs
I'm a PC too.
Wrote a book
 
Avatar degojs
 
Datum učlanjenja: 05.06.2005
Lokacija: Kanada
Poruke: 1.354
Hvala: 82
130 "Hvala" u 89 poruka
degojs će postati "faca" uskorodegojs će postati "faca" uskoro
Default

Citat:
apsolutno si u pravu, medjutim ono sto ti kompajler automatski pruza je da program pukne u toj situaciji. Ako zelis da uhvatis exception (a na webu to svakako zelis) moras da napises kod koji ce to da uradi, a to isto mozes da uradis i u script jezicima, sva 3 ispljuvana jezika php5, perl i python podrzavaju sasvim fino error handling u zeljenom bloku.
Prvo, ja ovo ništa ne pišem da bi bilo šta pljuvao. Ako si stekao takav utisak na osnovu mojih poruka - grešiš.

Kakav exception kad ja imam GARANCIJU da mi je prosleđen tip int kao ulazni parametar?

Pa i onaj ko koristi moju klasu dobiće još za vreme pisanja koda ili kompjaliranja poruku da poziva funkciju sa neodgovarajućim tipom podataka. Dakle, daleko pre izvršenja aplikacije. A ko će baš da testira sve moguće gluposti..?

Citat:
S druge strane u C-u sam nebrojeno mnogo puta upucao greskom float u integer ili kopirao veci string u kraci, pa se onda zezao da ispravljam, rekompajliram i linkujem sve ponovo
Pazi, sva bolja okruženja (Netbeans, Visual Studio, npr.) ODAVNO imaju mogućnost da te još za vreme programiranja lepo obaveštavaju o ovakvim stvarima.. Ne vidim kako je to problem. Nismo više u 80-im. Nemoj sad da se hvataš za C koji su koristili ko zna ko, gde i kada.. Problemi sa stringovima? Da li znaš koliko je to besmislena i u Javi i u C#, a i u C++ kako mi se čini?

I kako rekoh - use the right tool for the job. C ima svoju primenu i dan danas. Nećem valjda sad o tome

Citat:
Int prosledjen umesto stringa, ili obrnuto u vecini skript jezika NIJE GRESKA, jer jezik sam radi casting kako treba i sve ce savrseno lepo funkcionisati, operatori ce dobiti tacno velicinu sa kojom ocekuju da rade i nema problema.
Interesantno, šta će da se desi kada treba da se sabera 1 i "A"?
Pretpostavljam dobićeš string "1A"?

I šta sad? U bazu podataka u kolonu koja je definisana kao int, hoćemo da upišemo "1A" ? Greška?

Nećeš dobiti string "1A"? Dobićeš grešku za vreme IZVRŠENJA jer program ne može da sabere 1 i "A"? I onda neko treba da gleda kod u mojoj klasi, jer je greška tamo prijavljena?

Da ne napominjem koliko je lakše i bolje da se greška uhvati za vreme kompajliranja ili još pre.

Stvar je u tome da NEMAŠ uvek kontrolu nad svim delovima koda. Tako da ne znaš ko i sa kakvim parametrima će da zovne tvoju funkciju. Možda će da zaboravi da proveri da li je korisnik uneo broj ili je greškom otkucao i neko slovo? Moja komponenta sa foo(int p) neće da pukne zbog toga i SIGURNO je bolje da korisnik moje klase dobije obaveštenje o grešci i ispravi grešku u SVOM kodu sa kojim je upoznat, nego da gleda gde i zašto moja klasa nije uspela da upiše rezultat u bazu. Možda nema sors kod, a i da ga ima.. sad treba da gleda po mom kodu..?

Ako smo podelili posao između tebe i mene, gde ti radiš front-end i biz layer a ja data-access layer npr., jasno da nije potrebno da i ti i ja proveravamo da je korisnik uneo broj tamo gde se traži broj a ne da imamo i neko slučajno otkucano slovo? To je tvoj posao, a ja ću samo da "kažem" funkcija prima parametar int i ne brinem o tome..

Da ponovim: ne pričam ovo u smislu "A je glupost, B je jedino dobro." Daleko od tog, ali mogu valjda da kažem gde vidim prednosti jednog pristupa u odnosu na drugi.
__________________
Commercial-Free !!!

Poslednja izmena od degojs : 14. 01. 2006. u 08:43.
degojs je offline   Odgovorite uz citat