Minggu, 23 Juli 2017

Mencoba Statement Try Catch di Java

Untuk menangani error di Java, digunakan sebuah statement yang bernama try..catchStatement tersebut digunakan untuk mengurung eksekusi yang menampilkan error dan dapat membuat program tetap berjalan tanpa dihentikan secara langsung. Error yang ditangani oleh try..catch biasa disebut dengan exception.
Ada beberapa hal yang perlu diingat ketika akan menggunakan try..catch di Java:
  • Kita dapat membuat multiple try..catch
  • Kita dapat menambahkan statement finally untuk menangani berbagai hal ketika error terjadi atau tidak
  • Kita dapat membuat exception sendiri disamping menggunakan bawaan Java
Sebagai contoh mari kita coba lihat source code yang mengandung errorberikut:
class DemoSatu {
    public static void main (String[] args){
        System.out.println("awal program");

        int x = 10;

        x = x / 0;

        System.out.println(x);

        System.out.println("akhir program");
    }
}
Bila kita jalankan di konsol, maka akan muncul output seperti berikut:
$ javac DemoSatu.java
$ java DemoSatu
awal program
Exception in thread "main" java.lang.ArithmeticException: / by zero
    at DemoSatu.main(DemoSatu.java:7)
Berbeda bila kita kurung operasi pembagian nol diatas dengan try..catch, maka hasil eksekusi program akan sedikit berbeda:
class DemoSatu {
    public static void main (String[] args){
        System.out.println("awal program");

        int x = 10;

        try {
            x = x / 0;
        }
        catch (Exception e){
            e.printStackTrace();
            System.out.println("error karena pembagian nol");
        }

        System.out.println(x);

        System.out.println("akhir program");
    }
}
Sekarang kita eksekusi kembali program diatas. Maka program akan dijalankan sampai bagian akhir program walaupun terjadi error di tengah - tengah eksekusi:
$ javac DemoSatu
$ java DemoSatu
awal program
java.lang.ArithmeticException: / by zero
    at DemoSatu.main(DemoSatu.java:10)
error karena pembagian nol
10
akhir program
Mari kita coba lagi contoh yang lain, dimana kita akan menggunakan statementfinally. Perhatikan source code berikut:
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.FileNotFoundException;

class DemoDua {
    public static void main (String[] args) {
        System.out.println("awal program");

        try {
            System.out.println("Baris ini tidak akan dieksekusi - 1.2");    

            File f = new File ("hello.txt");
            InputStream fis = new FileInputStream(f);

            System.out.println("Baris ini tidak akan dieksekusi - 1.3");    
        }
        catch (Exception e){
            e.printStackTrace();
        }
        finally {
            System.out.println("Baris di dalam finally akan dieksekusi");
        }

        System.out.println("akhir program");
    }
}
Bila kita jalankan source code diatas, maka bagian finally akan dijalankan baik terjadi error ataupun tidak:
$ javac DemoDua.java
$ java DemoDua
awal program
Baris ini tidak akan dieksekusi - 1.2
java.io.FileNotFoundException: hello.txt (No such file or directory)
    at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(FileInputStream.java:195)
    at java.io.FileInputStream.<init>(FileInputStream.java:138)
    at DemoDua.main(DemoDua.java:14)
Baris di dalam finally akan dieksekusi
akhir program
Kode program jika kita hapus bagian pembacaan file:
$ javac DemoDua.java
$ java DemoDua
awal program
Baris ini tidak akan dieksekusi - 1.2
Baris ini tidak akan dieksekusi - 1.3
Baris di dalam finally akan dieksekusi
akhir program
Share:

Related Posts:

0 komentar:

Posting Komentar