Resio sam da malo prostudiram Android programiranje a pre toga malo Javu da istrazim.Skino sam Eclipse i krenuo da isprobavam neke trivijalne stvari.Imam solidno znanjem c# i jos par jezika pa sam pomislio citajuci po netu da ce Java biti dosta slicna.No,neki koncepti u Javi toalno su mi strani,pa reko da iskoritim priliku i priupitam ljude dobre volje...
Ovako glasi moj kod u C#
Kod:
File.WriteAllText("d:\\krahi.txt", "text");
Ovo bi trebalo da je Java ekvivalent,koji nazalost ne funkcionise....
Kod:
public class MojaKlasa {
public static void main(String[] args){
FileWriter writer = new FileWriter("D:\\krahi1.txt");
writer.write("krahi");
writer.close();
}
}
Eclipse nudi dve moguce ispravke
Kod:
public class MojaKlasa {
public static void main(String[] args) throws IOException {
FileWriter writer = new FileWriter("D:\\krahi1.txt");
writer.write("krahi");
writer.close();
}
}
Posle dodavanja exceptiona u nastavku metoda,gore pomenuti kod radi.Medjutim taj koncept mi je nepoznat.Ako neko moze da objasni cemu sluzi.Jel mu to dodje isto kao try catch blok i u cemu je razlika?
Drugo resenje,na moje zaprepascenje je ovaj kod
Kod:
public static void main(String[] args) {
FileWriter writer = null;
try {
writer = new FileWriter("D:\\krahi1.txt");
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
writer.write("krahi");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Ovo resenje sa milion try catch blokova,i ako je solidno ruzno i necitljivo,jos i ima nekog smisla(Ok znam da se moze napisati i sa jednim try catch blokom no ovo je eclipse sam generiso lol).Jel to znaci da svaki resurs koji koristim i koji potencijalno moze baciti exception,mora biti u try catch bloku,da bi uopste mogao kompajlirati kod?