[ Ice-D @ 30.12.2008. 16:03 ] @
Jeli bolje što se tiče performanca koristit try...catch...blok ili vršitit provjeru sa if.
Recimo ako nekoliko puta po neodređenoj putanji prolazim kroz neki 2d niz i treba postaviti svaki susjedni (lijevi, desni, gornji, donji ) na neku vrijednost i sad treba paziti da ne iziđem izvan granica niza. Jeli bolje izostaviti provjeru sa if i sve staviti u try...catch...blok pa kad se desi "index out of rang" da program normalno nastavi dalje, samo ne obavi operaciju ( kao da je naišao na if...)
[ icobh @ 30.12.2008. 18:37 ] @
Sto se tice C++, ja sam radio dosta i previse ovakvih stvari i znam da nikad nisam radio sa try blokom, vjerovatno zato sto se kod mora budziti jer C++ po defaultu nakon odradjene catch rutine iskace iz programa. Npr. Java je takva da jednostavno moras koristiti try blok, zato se pribjegava pisanju sto manjih f-ja u kojima moze da se baci exception. Pa vidi, mozda moze da ti pomogne takav pristup...
[ Eurora3D Team @ 01.01.2009. 04:55 ] @
I ja delim icobh - ovo misljenje
Zna se sta sluzi za sta ... if je za proveru a try / catch za izbegavanje gresaka (a ne posla)
A i if radi brze
[ Shadowed @ 01.01.2009. 11:16 ] @
A i ako postavis iteratore kako treba, neces ni izaci iz opsega :)
[ X Files @ 01.01.2009. 11:43 ] @
Citat:

Jeli bolje izostaviti provjeru sa if i sve staviti u try...catch...blok pa kad se desi "index out of rang"


"Index out of range" je poruka koja se dobija obicno od nekog konkretng frameworka, kada indeks izadje van dozvoljenih okvira. To je poslednja linija odbrane.

Implementira se tipicno preko if provere (u samom frameworku) i bacanja izuzetka:
Code:

if ( nesto_nedozvoljeno )
   baci_izuzetak();


Dakle, ako se odlucis za try/catch, imas sledecu situaciju:
1. if test (frameworka)
2. bacanje izuzetka (frameworka)
3. hvatanje izuzetka (tvoja aplikacija)

Ako se odlucis za if, imas sledecu situaciju:
1. if test (tvoja aplikacija)

Vise je nego ocigledno sta je brze i bolje, mada ti je vec to i receno.

try/catch se vise koristi kada je u bloku nesto sto se tesko ili nikako ne moze kontrolisati (ispitati) ili bi prethodna ispitivanja bila isuvise glomazna, nezgrapna, spora, nepotpuna i sl. Tada obavezno vrsim upis u log fajl da bih video sta se tacno desava.



BTW: Kad sam prvi put procitao ovo pitanje, video sam "sta je bolje, switch ili if"... eh sta je mozak... cita ono sto ocekuje da pise...


[Ovu poruku je menjao X Files dana 01.01.2009. u 12:58 GMT+1]
[ Eurora3D Team @ 01.01.2009. 17:35 ] @
I obrati paznju na ovo sto ti je napisao Shadowed
U tvom slucaju : postavi iteraciju od start + 1 do kraj - 1 (uslov da imas bar 3 elementa) i proveravaj index -1 , index , index +1 (tako i uspravno u 2d nizu)
Ovo je najlogicnije resenje ako znas kolika je matrica

[Ovu poruku je menjao Eurora3D Team dana 02.01.2009. u 02:41 GMT+1]