Upload
simona-ventura
View
214
Download
0
Embed Size (px)
DESCRIPTION
Strukture podatak i algoritni pmf novi sad
Citation preview
SPA1 - Izuzeci
Doni Pracner
Strukture podataka i algoritmi 1
Izuzeci
Doni Pracner@DoniPracner | [email protected]
Izuzetak - pojam Predstavlja nepravilnu situaciju u kojoj se program moe nai
Deljenje sa nulom Nepostojei fajl pri itanju Pogrean tip podataka
Daje mehanizam kojim se izuzetak moe uhvatiti i eventualno omoguitiprogramu da nastavi dalje sa radom
Tipovi izuzetaka u Javi
Proveren (Checked)
Eksplicitno se navodi nakon imena metoda Kompajler proverava da li e biti obraen ako se javi Obavezno je da postoje strukture za obradu
Neproveren (Unchecked)
Ne navodi se nakon imena metoda Kompajler ne proverava da li se obrauje Strukture za obradu mogu, a ne moraju da postoje
1
Opta ema hvatanja izuetka
public static void problematicanKod() throws Exception {}public static void mozdaBacaIzuzetak() {}public static void obrada() {
//mora postojati 'try-catch' blok za prvi metodtry {
problematicanKod();} catch (Exception ex) {
// obrada izuzetka}// za drugi moze i ne moramozdaBacaIzuzetak();try {
mozdaBacaIzuzetak();} catch (Exception ex) {
// obrada izuzetka}
}
Neprovereni izuzeci u Javi
RuntimeException izuzeci koji se deavaju u normalnom izvravanju Error ozbiljni problemi koji se tipino ne hvataju
Primer problematinog koda
public class T1{
public static void pretvoriUBroj(String s){int i = Integer.parseInt(s);Svetovid.out.println("broj je", s);
}
public static void main(String[] args){pretvoriUBroj("2");pretvoriUBroj("dva");
}}
broj je 2Exception in thread "main" java.lang.NumberFormatException: For input string: "dva"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
2
at java.lang.Integer.parseInt(Integer.java:580)at java.lang.Integer.parseInt(Integer.java:615)at T1.pretvoriUBroj(T1.java:4)at T1.main(T1.java:10)
Obrada izuzetka
public class T1a {public static void pretvaranjeSaProverom(String s){try{int i = Integer.parseInt(s);Svetovid.out.println("broj je", s);
} catch (Exception ex) {Svetovid.out.println("greska u pretvaranju");
}
}
public static void main(String[] args){pretvaranjeSaProverom("2");pretvaranjeSaProverom("dva");
}
}
broj je 2greska u pretvaranju
Primer bacanja izuzetka
public class T2 {
public static void sviOsimDva(int br) throws Exception{if (br == 2) {throw new Exception("Broj 2 nije prihvatljiv!");
}Svetovid.out.println("broj je", br);
}
// posto glavni metod ne obradjuje izuzetak, mora// deklarisati da ga baca!public static void main(String[] args) throws Exception{sviOsimDva(5);
3
sviOsimDva(3);sviOsimDva(2);
}}
broj je 5broj je 3Exception in thread "main" java.lang.Exception: Broj 2 nije prihvatljiv!
at T2.sviOsimDva(T2.java:5)at T2.main(T2.java:13)
itanje iz fajla korienjem ugraenih biblioteka
public static void citaj(String ime) {try (BufferedReader reader =
Files.newBufferedReader(Paths.get(ime))) {String line = null;while ((line = reader.readLine()) != null) {System.out.println(line);
}} catch (IOException x) {System.err.format("IOException: %s%n", x);
}}
Pisanje u fajl korienjem ugraenih biblioteka
public static void pisi(String ime, String sadrzaj) {try (BufferedWriter writer =
Files.newBufferedWriter(Paths.get(ime))) {writer.write(sadrzaj, 0, sadrzaj.length());
} catch (IOException x) {System.err.format("IOException: %s%n", x);
}}
Izuzeci u okviru kursa SPA1 Nee biti detaljno obraivani Potrebno je znati za pojam izuzetka Da mnogi metodi bacaju izuzetke eksplicitno Da je mogue obraditi izuzetak i kad je provereni i neprovereni
4
KRAJ
5
Strukture podataka i algoritmi 1IzuzeciIzuzetak - pojamTipovi izuzetaka u JaviOpta ema hvatanja izuetkaNeprovereni izuzeci u JaviPrimer problematinog kodaObrada izuzetka
Primer bacanja izuzetkaitanje iz fajla korienjem ugraenih bibliotekaPisanje u fajl korienjem ugraenih bibliotekaIzuzeci u okviru kursa SPA1
KRAJ