9. Izuzeci Flashcards

1
Q

Izuzeci u programskom jeziku Java

A

try{//kod koji moze da prijavi izuzetke}
catch(Exception1 e){//obrada izuzetka tipa Exception1}
catch(Exception2 e){//obrada izuzetka tipa Exception2}

finaly{//deo koji se izvrsava nezavisno od toga da li je izuzetak prijavljen ili ne}

Namena finally bloka je da oslobodi resurse koji su eventualno zauzeti pre prijave izuzetka.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Standardni izuzeci u Javi

A

Tip objekata koji se prijavljuje kao izuzetak mora da bude nasledjen direktno ili indirektno iz klase Throwable.

  • Klasa Error je osnovna klasa za predstavljanje skupa izuzetaka koji prijavljuje uglavnom JVM i ovi izuzeci izazivaju prekid rada aplikacije. Ovi izuzeci ne moraju da se prihvataju i obradjuj.
  • Klasa Exception je osnovna klasa za predstavljanje skupa izuzetaka koji se pojavljuju u programu - nastali su kao posledice greske programera, pogresnih podataka ili problema sa U/I uredjajima.
  • Klasa RunTimeException je klasa za predsatavljanej izuzetaka koji su uglavnom posledica gresaka programera. Izuzeci ove klase ne moraju da budu obradjeni
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Checked & Unchecked exceptions

A
  • Unchecked exceptions - u fazi kompajliranja se ne proverava da li su izuzeci ovog tipa obradjeni (izuzeci izvedeni iz Error i RunTimeException)
  • Checked exceptions - u fazi kompajliranja se proverava da li su izuzeci ovog tipa obradjeni (izuzeci izvedeni iz Exception osim RunTimeException)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Kreiranje sopstvenih klasa za predstavljanje izuzetaka

A

Obavezno je da budu direktno ili indirektno izvedeni iz klase Exception

public MojIzuz extends Exception
{
        public MojIzuz(String s)
                {
super(s);
}
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Propagiranje izuzetaka u Javi

A

Ukoliko funkcija prijavljuje izuzetak koji je izveden iz klase Exception, neophodno je da kompajler proveri da li su ti izuzeci obradjeni i to se radi dodavanjem throws klazule, npr throws IOException; iza zaglavlja funkcije koja moze da baci taj izuzetak.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Slicnosti i razlike u odnosu na C++

A

Format naredbe za prijavu izuzetaka i struktura try catch je isti kao u C++
Razlika je u tome sto izuzetak ne moze biti proizvoljnog tipa, struktura za obradu izuzetka moze da sadrzi finally i u zaglavlju funkcija throws je obavezna.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Izuzeci u programskom jeziku C#

A

Ukoliko zelimo da napravimo svoj izuzetak, neophodno je da on bude izveden iz ApplicationException.
Slicnosti sa javom su to sto je format naredbi za prijavu izuzetka isti, try - catch struktura je ista, objekti koji se prijavljuju kao izuzeci su objekti stanradnih klasa za predstavljanje izuzetaka ili objekti klasa izvedenih izn jih.
Razlika je to sto se throws klazula ne navodi u zaglavlju funkcije

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Mehanizam za obradu izuzetaka

A

Izuzetak je svaki neobican dogadjaj koji se moze otkriti softverski ili hardverski, a koji zahteva posebnu obradu, npr. deljenje nulom. Izuzetak treba da se obradi izvan osnovnog toka programa.
U jezicima koji ne podrzavaju obradu izuzetaka, ispisuje se odgovarajuca poruka na ekran i prekida se rad programa.
U jezicima koji podrzavaju obradu izuzetaka, u tackama gde je doslo do problema se prijavljuje izuzetak, a u posebnim delovima koda se izuzetak obradjuje, tj. trazi se mogucnost da se nastavi program ili da se taj problem resi.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Tehnike za obradu izuzetaka

A

Kod novijih programskih jezika razradjeni su mehanizmi za prihvatanje hardverskih izuzetaka i definisanje i obradu softverskih izuzetaka.
Kod starijih programskih jezika ovi problemi su se obicno resavali pomocu:
Koriscenje statusnih parametara za detekciju izuzetaka
Razlicite tacke povratka iz funkcije zavisno od toga da li se pojavio izuzetak ili ne
Potprogram za obradu izuzetka koji se prosledjuje kao parametar

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Koriscenje statusnih parametara za detekciju izuzetaka

A

Potprogramu se dodaje ekstra parametar koji nosi informaciju o statusu odredjenog dogadjaja. Kada nastane dogadjaj koji se kontrolise taj parametar menja vrednost. Pri povratku iz potprograma uvek se ispituje vrednost statusnog parametara. Nedostaci su sto kod postaje jako nepregledan i moguce je da se izuzeci ispituju veliki broj puta.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Razlicite tacke povratka iz funkcije zavisno od toga da li se pojavio izuzetak ili ne

A

Ovaj nacin omogucava da se nastavak programa razlikuje u zavisnosti da li se pojavio izuzetak. Kod jezika sa dinamickom i polu-dinamickom implementacijom ova tehnika se ne moze koristiti jer otezava manipulisanje aktivacionim slogovima.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Potprogram za obradu izuzetka koji se prosledjuje kao parametar

A

Potprogram za obradu izuzetaka se prosledjuje u potprograme u kojima se kontrolise odredjeni izuzetak. Osnovni nedostatak ovog pristupa je upravo taj sto se pri svakom pozivu mora prenositi i ceo potprogram za obradu pa kod postaje prenatrpan.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly