Sabtu, 04 Maret 2017

Exception(Try-Catch-Finally-Throw)

1. Pengertian Exception

      Exception adalah suatu mekanisme yang digunakan oleh beberapa bahasa pemrograman untuk mendeskripsikan apa yang harus dilakukan jika ada suatu kondisi yang tidak diinginkan terjadi. Eksepsi dapat dijumpai saat:

  • Mengakses method dengan argumen yang tidak sesuai.
  • Membuka file yang tidak ada
  • Koneksi jaringan yang terganggu
  • Manipulasi operan yang nilainya keluar dari batasan yang didefinisikan
  • Pemanggilan class yang tidak ada.


2. Jenis-jenis Exception

Checked exceptions: merupakan exception yang disebabkan oleh kesalahan
pemakai program atau hal lain yang dapat diprediksi oleh pemrogram. Contohnya,
jika ingin membuka file tapi file tidak ditemukan, maka exception akan muncul.

Runtime exception: ini adalah exception yang muncul dimana kemunculannya
tidak bisa dihindari oleh pemrogram.

Errors: Ini sebenarnya bukan exception, namun merupakan masalah yang muncul
diluar kendali pemakai dan pemrogram. Error secara umum akan dibiarkan saja,
sebab tidak ada yang bisa dilakukan untuk mengatasinya. Sebagai contoh, jika stack
overflow muncul, maka error akan muncul.

3. pengertian Try

     keyword ini digunakan untuk mencoba menjalankan block program, kemudian mengenai dimana munculnya kesalahan yang ingin diproses. keyword ini juga harus dipasangkan dengan keyword catch atau keyword finally.

4. pengertian  Catch

    Dalam java, keyword catch harus dengan try. kegunaan keyword ini adalah menangkap lesalahan atau bug yang terjadi dalam block try.

5. pengertian Finally

     Keyword finally merupakan keyword yang menunjukan bahwa block program tersebut akan selalu dieksekusi meskipun adalanya kesalahan yang muncul atau pun tidak ada.

6.pengertian throw

       keyword throw digunakan untuk melemparkan suatu bug yang dibuat secara manual.
keyword ini digunakan dalam satu method atau kelas yang menghasilkan kesalahan sehingga perlu ditangkap errornya.

7.perbedaan catch dan finally

  • Catch 

    Jika anda sudah melihat contoh try maka secara tidak langsung anda sudah memahami kegunaan dari keyword ini. Dalam java, keyword catch harus dipasangkan dengan try. Kegunaan keyword ini adalah menangkap kesalahan atau bug yang terjadi dalam block try. Setelah menangkap kesalahan yang terjadi maka developer dapat melakukan hal apapun pada block catch sesuai keinginan developer. Contoh Program :

catch(Exception kesalahan)
{
    System.out.println(“mohon maaf, terdapat kesalahan pada program”);
    //lakukan hal lainnya disini
}
Keyword catch juga dapat diletakan berulang-ulang sesuai dengan kebutuhan. Contoh :

public class A
{
    public static void main(String[] args) {
        try
        {
            int a = 1/0;  //berpotensi untuk menimbulkan kesalahan yaitu pembagian dengan bilangan 0
            System.out.println("perintah selanjutnya");
        }
        catch(NullPointerException e)
        {
        }
        catch(ArrayIndexOutOfBoundsException e)
        {
        }
        catch(Exception e)
        {
        }
    }
}






  • finally

       Keyword ini merupakan keyword yang menunjukan bahwa block program tersebut akan selalu dieksekusi meskipun adanya kesalahan yang muncul atau pun tidak ada. Contoh implementasinya pada program :

public class A
{
    public static void main(String[] args) {
        try
        {
            int a = 1/0;
        }
        catch (Exception e)
        {
            System.out.println(“ada kesalahan yang muncul”);
        }
        finally
        {
            System.out.println(“terima kasih telah menjalankan program”);
        }
    }
}
Output Program :

ada kesalahan yang muncul

terima kasih telah menjalankan program

Perhatikan kedua contoh diatas, block finally akan selalu dieksekusi meskipun adanya kesalahan atau tidak pada block try. Berbeda dengan keyword catch keyword finally hanya dapat diletakan 1 kali setelah keyword try.

8. Penggunaan  fungsi Try pada java

Try dan Catch merupakan suatu fitur pada java yg dikhusus untuk menangani suatu kesalahan atau error pada suatu listing program. Struktur dari fungsi try catch adalah sebagai berikut.

try{
    listing program (blok try)
}
catch(Throwable t){
    error handler (blok catch)
}

Logikanya seperti ini, jika kita menulis sebuah program, dan di dalam program tersebut terjadi suatu kesalahan atau pun error maka program akan terhenti dan tidak menjalankan listing program selanjutnya. Tetapi jika kita menggunakan fungsi try catch, listing program yg kita tuliskan didalam blok try akan dijalankan oleh program, dan jika dalam program tersebut terdapat suatu kesalahan, maka kesalahan/error tersebut akan di tangani oleh blok catch, dan selanjutnya listing program yg ada selanjutnya akan tetap dijalankan.
Untuk lebih jelasnya silahkan jalankan ke-2 program dibawah ini.

 Program 1

import javax.swing.JOptionPane;

/**
 *
 * @author yudhaN
 */
public class tray {
    public static void main (String[] args){
        System.out.println(10/0);
        JOptionPane.showMessageDialog(null,"program selanjutnya");
    }
}


Program 2

import javax.swing.JOptionPane;

/**
 *
 * @author yudhaN
 */
public class tray {
    public static void main (String[] args){
        try{
            System.out.println(10/0);
        }
        catch(Throwable t){
            JOptionPane.showMessageDialog(null,"error pada : "+t.getMessage());
        }
        JOptionPane.showMessageDialog(null,"program selanjutnya");
    }
}

Dari ke dua program diatas, terdapat 2 inti output, yaitu output hasil
dari 10/0, dan output "program selanjutnya", pada program pertama untuk
output pertama akan mengeluarkan hasil dari 10/0, karna tidak bisanya
suatu angka dibagi dengan 0, maka terjadi error, dan output "program
selanjutnya" tidak dijalankan. Berbeda dengan program ke-2 yg
menggunakan fungsi try catch, listing program pertama memang terjadi
kesalahan, yg mana angka 10 tidak bisa dibagi oleh bilangan 0, dan akan
muncul pesan error, tetapi setelah itu program akan tetap menjalankan
output "program selanjutnya", berbeda dengan program ke-1 yg mana
listing output selanjutnya tidak dijalankan.


9. Aturan penggunaan pada catch

 Try Catch ini adalah salah satu fitur dari Java untuk menangkap eksepsi atau kesalahan. Ya mungkin kita sering melakukan kesalahan dalam membuat program. Nah, dengan menggunakan Try Catch ini kita bisa menangkap kesalahan itu. Eksespsi bisa berupa kesalahan penulisan kode, kesalahan saat menjalankan method dan sebagainya.
Bentuk umum Try Catch

try {
   <blok_programs>;
}
catch(<parameter>) {
   <blok_yang_dijalankan_jika_terjadi_eksepsi>;
}
finally {
   <blok_yang_dijalankan_terakhir>;
}
Di blok program di dalam Try itu adalah program yang akan dijalankan dan akan ditangkap eksepsinya jika terjadi kesalahan. Dan yang di blok catch adalah blok yang dijalankan jka terjadi eksepsi, jadi pesan kesalahannya di dalam catch ini. Biasanya berupa statement. Finally sebenarnya hanya pelengkap saja dan jarang digunakan. Ini bisa dibayangkan sebagai footer, yaitu akan keluar di akhir atau dijalankan di akhir. Mungkin akan lebih jelas dengan contoh di bawah ini:

class Coba {
   public static void main(String[] args) {
      System.out.println("starram\n");
      try{
         System.out.println(10/0);
      }
      catch(Throwable b) {
         System.err.println("terjadlahan >> "+b.getMessage());
      }
      finally {
         System.out.println("Pembagiann");
      }
      System.out.println("endrogram");
   }
}
Outputnya

start program

terjadi kesalahan >> / by zero

pembagian nol

end of program

NB:

Program dibaca dari atas, mencetak start program terlebih dulu setelah itu baru masuk try
Di blok program try terjadi kesalahan. Kesalahannya, bilangan berapapun jika dibagi nol itu tidak bisa atau tidak terdefinisi.
Blok catch mencetak kesalahannya. Catch mempunyai parameter b yang berkelas Throwable. Throwable adalah kelas yang ada di package java.lang yang menangani eksepsi dan merupakan turunan dari kelas objek (kelas tertinggi di JAVA). Dan perlu diketahui blok ini akan dijalankan jika terjadi eksepsi saja.
System.err.println untuk mencetak kesalahan dan getMessage() adalah method untuk menampilkan kesalahan yang terjadi.
Blok finally itu bisa dikatakan seperti footer, jadi akan dijalankan di bagian terakhir saja dan akan tetap dijalankan walaupun tidak terjadi kesalahan atau eksepsi sekalipun
Setelah selesai akan keluar dari Try Catch dan mencetak end of program

10. Aturan penggunaan pada finally

Keyword finally biasanya di gunakan saat keyword try dan crach karena keyword finally merupakan implementasian dari keyword-keyword sebelumnya yaitu keyword try dan crach. Berikut cara penuliasn pada keyword finally :

try {
<kode monitor exception>
} catch (<ExceptionType1> <ObjName>) {
<penanganan jika ExceptionType1 terjadi>
} …
} finally {
<kode yang akan dieksekusi saat blok try berakhir>
}


Penulisan pada program ini bertujuan untuk mengatur penggunaan finally, keyword ini di gunakan seperti halnya pada blok catch. Penggunaan finally dimulai setelah kurung kurawal penutup blok catch terkait. Penulisan dalam blok tersebut juga mengalami indentasi. Blok finally mengandung kode penanganan setelah penggunaan try dan catch. Blok kode ini selalu tereksekusi walaupun sebuah exception terjadi atau tidak pada blok try. Blok kode tersebut juga akan menghasilkan nilai true meskipun return, continue ataupun break tereksekusi. Terdapat 4 kemungkinan skenario yang berbeda dalam blok try-catch-finally.

  • Pemaksaan keluar program terjadi bila control program dipaksa untuk melewati blok try menggunakan return, continue ataupun break. 
  • Sebuah penyelesaian normal terjadi jika try-catch-finally tereksekusi secara normal tanpa terjadi error apapun. 
  •  Kode program memiliki spesifikasi tersendiri dalam blok catch terhadap exception yang    terjadi. 
  •  Kebalikan skenario ketiga. Dalam hal ini, exception yang terjadi tidak terdefinisikan pada blok catch manapun. Contoh dari skenario – skenario tersebut terlihat pada kode keyword finally bisa teman lihat di Tutorial Praktek atau setelah materi ini.


2 komentar:

  1. mantap gan,jangan lupa mampir ke blog ane untuk tutorial pemrograman java https://bit.ly/soden1

    BalasHapus
  2. titanium arts
    TATONIC dental implants ART 바카라 사이트 CUSTOMING · TATONIC ROCKING T-TATONIC ROCKING 1xbet login T-TATONIC ROCKING T-TATONIC. casino-roll.com This unique and original design is crafted with the use of goyangfc sustainable

    BalasHapus