Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Izluđuju me try-cytch blokovi

[es] :: Java :: Izluđuju me try-cytch blokovi

Strane: 1 2

[ Pregleda: 1645 | Odgovora: 21 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

MarkoBalkan

Član broj: 141124
Poruke: 506
78.134.141.*



Profil

icon Izluđuju me try-cytch blokovi06.04.2008. u 13:37

kako može biti java tako defektna po pitanju try-catch blokova!
skoro za svaki k..... ga moram staviti, što me nervira!
dali ima neki način da se može izbječi ovo?
Često sam padao na ispitima, Proklete stolice!
Mogao sam biti car!

06.04.2008. u 13:37 

lukeguy
Novi Sad

Član broj: 46545
Poruke: 324
*.com
Via: [es] mailing liste



Profil

icon Re: Izluđuju me try-cytch blokovi06.04.2008. u 14:23
može. mani se Jave i bavi se C-om.

ili ubaci throws statement u deklaraciju metode ili koristi neki
kvalitetniji editor koji će automatski ubacivaty catch za svaki
exception koji tvoja metoda može da napravi. Eclipse to radi odlično,
verovatno i NetBeans, nisam ga koristio.
06.04.2008. u 14:23 

staticInt

Član broj: 66101
Poruke: 264
79.101.72.*



Profil

icon Re: Izluđuju me try-cytch blokovi06.04.2008. u 14:26
To radi i JIntelli Idea, posebno sto on to i sakriva tako da kod izgleda preglednije.
06.04.2008. u 14:26 

MarkoBalkan

Član broj: 141124
Poruke: 506
78.134.141.*



Profil

icon Re: Izluđuju me try-cytch blokovi06.04.2008. u 15:36
Citat:
lukeguy:
mani se Jave i bavi se C-om.


zašto?
Često sam padao na ispitima, Proklete stolice!
Mogao sam biti car!

06.04.2008. u 15:36 

lukeguy
Novi Sad

Član broj: 46545
Poruke: 324
79.101.65.*



Profil

icon Re: Izluđuju me try-cytch blokovi06.04.2008. u 18:03
zbog ovog zaključka:
Citat:
MarkoBalkan: kako može biti java tako defektna po pitanju try-catch blokova!

u C-u ne moraš imati nikakav error handling da bi ti se progam iskompajlirao. istina da neće raditi, ali to valjda nije ni bitno ako si se rešio try..cYtch (kič?) blokova.
06.04.2008. u 18:03 

Vanja Petreski

Član broj: 315
Poruke: 1554
*.adsl-1.sezampro.yu.



Profil

icon Re: Izluđuju me try-cytch blokovi07.04.2008. u 09:45
http://java.sun.com/docs/books...ential/exceptions/runtime.html

Hibernate i Spring, recimo, ispaljuju unchecked izuzetke i onda je jako zgodno raditi sa njima. A opet mozes da uhvatis odredjeni izuzetak ako zelis, na bilo kom nivou. I onda ga recimo wrapujes u neki svoj biznis checked izuzetak i odradis rethrow..
07.04.2008. u 09:45 

Dejan Lozanovic
Senior Software Developer - Team Leader , www.limores..
Beograd

Član broj: 691
Poruke: 1992
*.dynamic.sbb.rs.

Jabber: null@elitesecurity.org
Sajt: www.limores.net


Profil

icon Re: Izluđuju me try-cytch blokovi07.04.2008. u 14:37
realno try/catch blok je mnogo bolji nego funkcije koje recimo vracaju int i ako je taj int <0 onda je pitanju neka greska itd.... ali kao sto je vec receno svaki danasnji IDE radi posao savreseno dobro po tom pitanju. Da ne postoji mogucnost nekog nepredvidjenog izuzetka ne bi morao da ga hvatas. Tvoja je stvar samo da li umes da ga obradis ili ces pak samo da ga logujes.
"E tako se to radi , kratko ali j.e.b.i.t.a.c.n.o"
Degojs car - http://www.elitesecurity.org/t306994
07.04.2008. u 14:37 

Ha-Nocri

Član broj: 45144
Poruke: 35
79.101.214.*



Profil

icon Re: Izluđuju me try-cytch blokovi07.04.2008. u 16:26
Ne znam sta imas protiv try-catch. Mislim da to pojednostavljuje kod u mnogo slucajeva. Mozes da izbegnes uslove(if) na elegantan nacin.
07.04.2008. u 16:26 

MarkoBalkan

Član broj: 141124
Poruke: 506
78.134.141.*



Profil

icon Re: Izluđuju me try-cytch blokovi07.04.2008. u 21:38
Citat:
Ha-Nocri: Ne znam sta imas protiv try-catch. Mislim da to pojednostavljuje kod u mnogo slucajeva. Mozes da izbegnes uslove(if) na elegantan nacin.



Citat:
Dejan Lozanovic: realno try/catch blok je mnogo bolji nego funkcije koje recimo vracaju int i ako je taj int <0 onda je pitanju neka greska itd.... ali kao sto je vec receno svaki danasnji IDE radi posao savreseno dobro po tom pitanju. Da ne postoji mogucnost nekog nepredvidjenog izuzetka ne bi morao da ga hvatas. Tvoja je stvar samo da li umes da ga obradis ili ces pak samo da ga logujes.



malo ste krivo shvatili, možda nisam dobro objasnio.

recimo radio sam konekciju na bazu i bez try-cytch blokova se pojave greške, koriste se 3 bloka!
na ono što sam mislio kao što je u .net-u.
bez blokova i ako je takva situacija da trebaju, onda se stavljaju.
naravno ako je dijeljenje sa 0 da se moraju staviti.
u vs 2008 ako se dijeli sa 0 ne treba blok.
tako je i u javi od prije!

umjesto rezultata se pojava infinitivy(beskonačno)!

Često sam padao na ispitima, Proklete stolice!
Mogao sam biti car!

07.04.2008. u 21:38 

augustus
Novi Sad - Beograd

Član broj: 101581
Poruke: 232
*.dynamic.sbb.rs.



Profil

icon Re: Izluđuju me try-cytch blokovi07.04.2008. u 21:47
Ja se ne secam kad je u javi bilo dozvoljeno delenje sa 0(nulom). Mozda nikad nisam ni pokusao :D
A to sto u .NET-u ne moras da stavljas try-catch blokove ja uopste ne vidim kao prednost. I nisam jedini.

Ne samo sto mi je drago sto sam prisiljen da ih stavljam(jer bi ih zaboravio) nego i sam pravim svoje izuzetke i rukujem sa njima onako kako mislim da mi je potrebno. Cesto poludim kad mi se nesto desi a ja nit sam bacio niti uhvatio izuzetak.

I kao sto Dejan Lozanovic rece, IDE ti sve sam odradi, lagano ko pesmica.
"Čovek je biće koje se na sve navikava, i ja mislim da je ovo njegova najbolja definicija."
Fjodor M. Dostojevski
07.04.2008. u 21:47 

grizzly
Nemanja Kovacevic
Beograd

Član broj: 7978
Poruke: 173
194.106.175.*

ICQ: 166049504


Profil

icon Re: Izluđuju me try-cytch blokovi07.04.2008. u 22:52
Citat:
MarkoBalkan: malo ste krivo shvatili, možda nisam dobro objasnio.

naravno ako je dijeljenje sa 0 da se moraju staviti.
u vs 2008 ako se dijeli sa 0 ne treba blok.
tako je i u javi od prije!

umjesto rezultata se pojava infinitivy(beskonačno)!



javi nije potrebno (bolje reci obavezno) deljenje sa nulom stavljlati u try catch blok, zato sto je izuzetak koji se generise u tom slucaju (ArithmeticException) runtime exception
07.04.2008. u 22:52 

Sisko.Marcetic
Skobalj

Član broj: 153060
Poruke: 21
212.200.175.*



Profil

icon Re: Izluđuju me try-cytch blokovi10.04.2008. u 10:12
moze i ovako ( bez nervoze)

Code:

 int nekafunkcija () {
     int rezultat = 0;
       try {

      ...
      bla bla rezultat = ... bla bla bla
      ....
        return rezultat;
     } catch (Exception e)
   {
      return 0; // ako je rezultat x/0  ili 0/0 ili ko zna sta
   }
}


Necemo da pocinjemo flame war, ali Java je moderniji jezik od C (a pisana je u C ) i u principu je dobro koncipirana
10.04.2008. u 10:12 

afrodom
Erakovic Slobodan
Koceljeva

Član broj: 155837
Poruke: 47
91.150.71.*



Profil

icon Re: Izluđuju me try-cytch blokovi12.04.2008. u 10:28
He,he. Kad smo vec kod tih blokova, imam jedno pitanjce. Razumem kako radi try-catch (proverava prilozeni zraz da li je dobar), razumem i statment-throws (naglasava da se MOZE pojaviti greska u kompajliranju , ali nisam najbolje razumeo distinkciju nje sa thrown statement i kada se ona upotrebljava?
Hvala
bb
12.04.2008. u 10:28 

grizzly
Nemanja Kovacevic
Beograd

Član broj: 7978
Poruke: 173
194.106.175.*

ICQ: 166049504


Profil

icon Re: Izluđuju me try-cytch blokovi12.04.2008. u 10:58
Ne znam za thrown ali si verovatno mislio na throw.


Kad kazes throws u potpisu metode time deklarises da ta metoda moze baciti taj izuzetak i time obavestavas buduce korisnike te metode o potencijalnoj gresci.

throw je naredba kojom bacas exception u tvom programu kada ti mislis da je prikladno.

Recimo ako napises x/0 java ce sama baciti exception jer deljenje sa nulom je nemoguce uvek i svuda, ali ako ti je neko uneo string koji se ne sastoji samo od cifara a trebalo bi java ne moze sama provaliti da tu treba baciti izuzetak nego ces morati ti da kezes throw new TajITajIzuzetak()
12.04.2008. u 10:58 

afrodom
Erakovic Slobodan
Koceljeva

Član broj: 155837
Poruke: 47
91.150.71.*



Profil

icon Re: Izluđuju me try-cytch blokovi12.04.2008. u 11:09
aha, dakle u ovom kodu:

public void readMessage() throws IOException {
MessageReader mr = new MessageReader();
try {
mr.loadHeader();
} catch (IOException e) {

throw e;
}
}

throw e -- ovde znaci da ukoliko provera "try" pokaze da je ova metoda sa greskom, da uhvati gresku i kreira objekat tipa Exception, koji podrazumeva taj i taj izuzetak ako se desi. Jel tako?
bb
12.04.2008. u 11:09 

augustus
Novi Sad - Beograd

Član broj: 101581
Poruke: 232
*.dynamic.sbb.rs.



Profil

icon Re: Izluđuju me try-cytch blokovi12.04.2008. u 11:30
Ne bas, mada te mozda nisam razumeo :)

Ako se u metodi
Code:
mr.loadHeader();

desi izuzetak(kakav god) taj izuzetak se propagira do prvog try/catch bloka koji ga hvata.

Code:
try {
mr.loadHeader();
} catch (IOException e) {

throw e;
}


U ovom catch delu ti hvatas IOException(recimo da ne postoji fajl koji citas) i sad imas izbor sta dalje. Mozes daga ispise negde, da pokusas ponovo da otvoris fajl, a mozes i da propagiras izuzetak. Recimo ovde ga zabelezis u log, cisto da znas da se desio o kad, plus propagiras ga do recimo GUI-a gde ces rukovati s njim tako da ces izvuci korisnu informaciju iz izuzetka i prikazati korisniku.

npr:
Code:
try {
mr.loadHeader();
} catch (IOException e) {
logger.error(e)
throw e;
}

"Čovek je biće koje se na sve navikava, i ja mislim da je ovo njegova najbolja definicija."
Fjodor M. Dostojevski
12.04.2008. u 11:30 

afrodom
Erakovic Slobodan
Koceljeva

Član broj: 155837
Poruke: 47
91.150.71.*



Profil

icon Re: Izluđuju me try-cytch blokovi12.04.2008. u 11:47
Da, ok. To razumem, ali sta oznacava ovo na kraju- throw e? Mislim sta bacam kada sam u bloku vec utvrdio da li je bilo greski a ako jeste izbacio sam logger.error(e). Cemu onda ovo throw e?
bb
12.04.2008. u 11:47 

lukeguy
Novi Sad

Član broj: 46545
Poruke: 324
*.com
Via: [es] mailing liste



Profil

icon Re: Izluđuju me try-cytch blokovi12.04.2008. u 12:05
pošto ga je tvoj try..catch uhvatio, izuzetak se smatra obrađenim. ako
sad opet pozoveš throw sa istim tim izuzetkom ti ga opet proizvodiš i
time postižeš da se on obradi u drugom try..catch bloku koji se u
hijerarhiji nalazi "pre" ovog tvog iz metode (verovatno u nekoj drugoj
metodi koja je pozvala ovu tvoju readMessage). zbog toga se u
deklaraciji readMessage nalazi throws IOException. da nema tog throw e
ne bi trebalo da pišeš ni throws.
12.04.2008. u 12:05 

augustus
Novi Sad - Beograd

Član broj: 101581
Poruke: 232
*.dynamic.sbb.rs.



Profil

icon Re: Izluđuju me try-cytch blokovi12.04.2008. u 12:07
Ti mene zezas ili sta? :)
Citat:
Recimo ovde ga zabelezis u log, cisto da znas da se desio i kad, plus, propagiras ga do recimo GUI-a gde ces rukovati s njim tako da ces izvuci korisnu informaciju iz izuzetka i prikazati korisniku.


Code:
try {
    mr.loadHeader();
} catch (IOException e) {
    logger.error(e)
    throw new GreskaUCitanjuDatoteke("ime_datoteke.txt");
}


Treba ti i ovo:
Code:
public class GreskaUCitanjuDatoteke extends Exception{

    public UnexpectedException(String datoteka) {
        super("Datoteka: "+datoteka+" nije pronadjena!");
    }    
}


Dakle, ovu gresku dobijes u recimo klasi koja otvara i cita datoteku. Sadrzaj datoteke se salje nekoj swing formi i ti lepo propagiras izuzetak do svoje forme i tamo uhvatis izuzetak i prikazes ovu lepu poruku, tako da korisnik zna sta se desilo.

Code:
try {
  ...
} catch (GreskaUCitanjuDatoteke e) {
   neki_pop_up.setText(e.getMessage());    
    
}

"Čovek je biće koje se na sve navikava, i ja mislim da je ovo njegova najbolja definicija."
Fjodor M. Dostojevski
12.04.2008. u 12:07 

afrodom
Erakovic Slobodan
Koceljeva

Član broj: 155837
Poruke: 47
91.150.71.*



Profil

icon Re: Izluđuju me try-cytch blokovi12.04.2008. u 12:09
Hmm...Ok, mislim da sam razumeo....thanks

bb
12.04.2008. u 12:09 

[es] :: Java :: Izluđuju me try-cytch blokovi

Strane: 1 2

[ Pregleda: 1645 | Odgovora: 21 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.