Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Jop ist möglich - TCFTC (try-catch-finally-try-catch)
Wenn du z.B. ein close() (was normal auch in ein try-catch muss) im finally machen willst, musst du das sogar.
Allerdings sind deine Kommentare etwas verwirrend für mich...
Es wird versucht eine Datei zu lesen.
Wenn es dabei eine Exception gibt, wird eine Datei erstellt (Aber das muss im catch nicht im finally sein!)
Im finally wird dann geschrieben.
Stell dir vor du versuchst die Datei auf einem Pfad zu lesen den es nicht gibt.
Dann kannst du auch keine Datei erstellen weil es ja den Pfad nicht gibt
Es gibt die Möglichkeit abzufragen ob eine Datei exsistiert - bzw ob der Pfad exisitert aber auswendig weiss ich nicht wie.
So sehe ich das ...
Java:
public class Test3 {
private static void dateiLeseOperation() throws IOException {}
private static void dateiSchreibOperation() throws IOException {}
private static void dateiSchliessOperation() throws IOException {}
public static void main(String[] args) {
try {
dateiLeseOperation();
} catch(IOException ioex) {
// Hier muss die Datei erstellt werden!
ioex.printStackTrace();
try {
dateiSchreibOperation();
} catch(IOException ioex2) {
// Hm - total aufgeben ist hier wohl sinnvoll
return;
}
}finally {
try {
// weil man hier immer vorbeikommt ...
dateiSchliessOperation();
} catch (IOException ioex) {
ioex.printStackTrace();
}
}
}
}
Es gibt AFAIR irgendeinen JSR, damit das in Zukunft eher so geht, wie man sich es vielleicht wünschen würde (und wie es oft gemacht wird, wie es aber "eigentlich falsch" ist...)
Java:
public void write(File file, byte data[])
{
try
{
OutputStream out = new FileOutputStream(file);
out.write(data);
out.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
EDIT: Hab' mal FArt's Vorschlag von unten noch eingefügt. Kann ja nicht schaden
Joa, sicher. DA kann man ja dann wirklich nichts mehr machen, und ich wüßte auch nicht, wo das in der Praxis passieren könnte, und wo dann nicht schon vorher irgendwas auf fatalste weise abgekachelt sein müßte - aber vielleicht ist gereade das der Grund, weswegen man diesem Fall noch eine Log-Ausgabe spendieren könnte