Senin, 19 Desember 2011

THROWS DAN THROW

Cara kedua adalah dengan melempar exception ke method pemanggilnya, kalau tidak ada satupun method yang menangkap exception maka aplikasi akan keluar dari eksekusi. Sintaknya menggunakan keyword throws yang diletakkan di deklarasi method.

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class ThrowsExceptionTest{
               public static void main(String[] args) throws FileNotFoundException, IOException {
                           FileInputStream inputStream = new FileInputStream("buka-file.txt");
                           System.out.println("Kode setelah buka file");
              }
}

Kode diatas tidak akan error saat dikompilasi karena ada keyword throws disebelah method main yang menyebabkan method main tidak perlu lagi ada try catch, karena method main adalah method yang paling bawah pada call stack kalau ada exception yang tidak di handle oleh method main maka aplikasi akan langsung keluar, aturan ini hanya berlaku pada checked exception.

exception dilempar di satu method yang nantinya akan exception akan ditangkap oleh method pemanggilnya

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class ThrowsExceptionAnotherTest{
           public static void main(String[] args) {
                    try{
                              methodTidakBertanggungJawab();
                   } catch(FileNotFoundException ex){
                              ex.printStackTrace();
                   } catch(IOException ex){
                              ex.printStackTrace();
                   }                    
                   System.out.println("kode di dalam main");
           }
           public static void methodTidakBertanggungJawab() throws FileNotFoundException, IOException {
                    FileInputStream inputStream = new FileInputStream("buka-file.txt");
                    System.out.println("Kode setelah buka file");
           }
}

method tidak bertanggung jawab akan melempar exception pada method main, method main menghandle exception sendiri sehingga aplikasi tidak keluar dan string "kode di dalam main" di cetak.

keyword throw digunakan seperti pada Class Exception

Tidak ada komentar:

Posting Komentar