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: 6630 | Odgovora: 21 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

MarkoBalkan

Član broj: 141124
Poruke: 1624
78.134.141.*



+19 Profil

icon Izluđuju me try-cytch blokovi06.04.2008. u 13:37 - pre 195 meseci
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?
 
Odgovor na temu

lukeguy
Novi Sad

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



+8 Profil

icon Re: Izluđuju me try-cytch blokovi06.04.2008. u 14:23 - pre 195 meseci
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.
 
Odgovor na temu

staticInt

Član broj: 66101
Poruke: 485
79.101.72.*



+43 Profil

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

MarkoBalkan

Član broj: 141124
Poruke: 1624
78.134.141.*



+19 Profil

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


zašto?
 
Odgovor na temu

lukeguy
Novi Sad

Član broj: 46545
Poruke: 470
79.101.65.*



+8 Profil

icon Re: Izluđuju me try-cytch blokovi06.04.2008. u 18:03 - pre 195 meseci
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.
 
Odgovor na temu

anon315

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



+13 Profil

icon Re: Izluđuju me try-cytch blokovi07.04.2008. u 09:45 - pre 195 meseci
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..
 
Odgovor na temu

Dejan Lozanovic
Dejan Lozanovic
Beograd

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

Jabber: null@elitesecurity.org
Sajt: speedy-order.com


+75 Profil

icon Re: Izluđuju me try-cytch blokovi07.04.2008. u 14:37 - pre 195 meseci
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.
 
Odgovor na temu

Ha-Nocri

Član broj: 45144
Poruke: 1192
79.101.214.*



+10 Profil

icon Re: Izluđuju me try-cytch blokovi07.04.2008. u 16:26 - pre 195 meseci
Ne znam sta imas protiv try-catch. Mislim da to pojednostavljuje kod u mnogo slucajeva. Mozes da izbegnes uslove(if) na elegantan nacin.
i5-750 @4GHz with CM Hyper 212+
GTX 580 Lightning XE 3GB
Corsair HX750
CM Sniper
 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
78.134.141.*



+19 Profil

icon Re: Izluđuju me try-cytch blokovi07.04.2008. u 21:38 - pre 195 meseci
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)!
 
Odgovor na temu

augustus
Novi Sad - Beograd

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



+46 Profil

icon Re: Izluđuju me try-cytch blokovi07.04.2008. u 21:47 - pre 195 meseci
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
 
Odgovor na temu

grizzly
Beograd

Član broj: 7978
Poruke: 262



+4 Profil

icon Re: Izluđuju me try-cytch blokovi07.04.2008. u 22:52 - pre 195 meseci
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
 
Odgovor na temu

Sisko.Marcetic
Skobalj

Član broj: 153060
Poruke: 31
212.200.175.*



Profil

icon Re: Izluđuju me try-cytch blokovi10.04.2008. u 10:12 - pre 195 meseci
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
 
Odgovor na temu

afrodom

Član broj: 155837
Poruke: 137
91.150.71.*



Profil

icon Re: Izluđuju me try-cytch blokovi12.04.2008. u 10:28 - pre 195 meseci
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
 
Odgovor na temu

grizzly
Beograd

Član broj: 7978
Poruke: 262



+4 Profil

icon Re: Izluđuju me try-cytch blokovi12.04.2008. u 10:58 - pre 195 meseci
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()
 
Odgovor na temu

afrodom

Član broj: 155837
Poruke: 137
91.150.71.*



Profil

icon Re: Izluđuju me try-cytch blokovi12.04.2008. u 11:09 - pre 195 meseci
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?
 
Odgovor na temu

augustus
Novi Sad - Beograd

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



+46 Profil

icon Re: Izluđuju me try-cytch blokovi12.04.2008. u 11:30 - pre 195 meseci
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
 
Odgovor na temu

afrodom

Član broj: 155837
Poruke: 137
91.150.71.*



Profil

icon Re: Izluđuju me try-cytch blokovi12.04.2008. u 11:47 - pre 195 meseci
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?
 
Odgovor na temu

lukeguy
Novi Sad

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



+8 Profil

icon Re: Izluđuju me try-cytch blokovi12.04.2008. u 12:05 - pre 195 meseci
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.
 
Odgovor na temu

augustus
Novi Sad - Beograd

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



+46 Profil

icon Re: Izluđuju me try-cytch blokovi12.04.2008. u 12:07 - pre 195 meseci
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
 
Odgovor na temu

afrodom

Član broj: 155837
Poruke: 137
91.150.71.*



Profil

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

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

Strane: 1 2

[ Pregleda: 6630 | Odgovora: 21 ] > FB > Twit

Postavi temu Odgovori

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