Exception (part 2)
Semasa membuat input/output, kita mesti membuat exception handling.
Jika perasan, semua class yang terlibat dengan input/output perlu
ditutup menggunakan method close()
selepas digunakan. Contohnya,
package essential;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class InputDariFile {
public static void main(String[] args) throws IOException {
BufferedReader reader =null;
try {
reader = new BufferedReader(new FileReader("cubaan.txt"));
String input;
while ((input = reader.readLine()) != null) {
System.out.println(input);
}
} finally {
reader.close();
}
}
}
Bagi mengelakkan programmer lupa untuk menutup semula class tersebut,
Java menyediakan satu lagi jenis exception handling iaitu
try-with-resources
.
try-with-resources
Dalam try-with-resources
, class yang digunakan untuk input/output
diletakkan di dalam kurungan selepas try
:
package essential;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
public class InputDariFile {
public static void main(String[] args) {
try (BufferedReader reader = new BufferedReader(new FileReader("cubaan.txt"))) {
String input;
while ((input = reader.readLine()) != null) {
System.out.println(input);
}
} catch (IOException ex) {
// Handle exception
}
}
}
Jadi, Java akan tutup secara automatik class BufferedReader selepas
digunakan walaupun kita tidak meletakkan method close()
.
Keyword catch
, finally
, dan throws
masih boleh digunakan seperti
biasa.