Penanganan Error JAVA

Penanganan Error JAVA

A.     Kategori Exception
1.        Checked Exceptions
Exception yang disebabkan oleh kesalahan pemakai program atau hal lain yang dapat diprediksi oleh pemrograman.

2.        Runtime Exception
Exception yang kemunculannya tidak bisa dihindari oleh pemrograman. Biasanya disebabkan oleh kesalahan program atau pada desain program.

3.        Errors
Error sebenarnya bukan exception, namun merupakan masalah yang muncul diluar kendali pemakai dan pemrogram. Adapun jenis-jenis error yaitu:
a.    Syntax error
Kesalahan dari penulisan syntax pada program sehingga syntax tersebu tidak dapat dieksekusi oleh program.
b.    Logical Error
Kesalahan yang disebabkan oleh kesalahan penulisan atau rumus yang diterapkan oleh programmer.
c.    Runtime error Error
Disebabkan oleh kecerobohan programmer. Error ini akan muncul apabila terjadi miskomunikasi antara program dan di file yang dipanggil dalam  program. 

B.     Dasar Exception
Penanganan eksepsi pada java diatur dengan lima keyword: try, catch, throw, throws dan finally.
1.        Try
Digunakan untuk menjalankan block program, kemudian mengenai dimana munculnya kesalahan yang ingin diproses. Keyword ini juga harus dipasangkan dengan keyword catch atau keyword finally. pada point kedua dan ketiga.
Struktur Penulisan è

try{
......//blok program
} catch (tipeException e) {
......//blok program
}

2.        Catch
keyword catch harus dipasangkan dengan try. Kegunaan keyword ini adalah menangkap kesalahan atau bug yang terjadi dalam block try. Keyword catch juga dapat diletakkan berulang-ulang sesuai dengan kebutuhan.

3.        Throw
Keyword Throw digunakan untuk melemparkan suatu bug yang dibuat secara manual. Struktur Penulisan è

Throw ObjekEksepsi ;

ObjekEksepsi adalah semua objek yang merupakan turunan dari class Throwable(Kelas yang menjadi akar dari semua kelas exception.). Salah satu contoh objek eksepsi adalah ArrayIndexOutOfBounds

4.        Throws
Digunakan dalam suatu method atau kelas yang mungkin menghasilkan suatu kesalahan sehingga perlu ditangkap errornya. Cara mendefinisikannya dalam method adalah sebagai berikut :
type method-name throws exception-list1, exceptio-list2, … {}.

Keyword ini digunakan jika ada method yang mungkin menyebabkan exception tapi tidak menangani exception tersebut. Exception akan dilempar ke luar, maka dari itu keyword ”throws” digunakan saat pendeklarasian method.
Penulisan è

class NamaClass throws Exception { ......... } atau fungsi / prosedur
int f1()throws Exception{..........}

5.        Finally
Keyword finally merupakan keyword yang menunjukan bahwa block program tersebut akan selalu dieksekusi meskipun adanya kesalahan yang muncul atau pun tidak ada. Setiap try membutuhkan sekurang-kurangnya satu bagian catch atau finally yang cocok.  Penulisan è

try{
......//blok program
} catch (tipeException1 e) {
......//blok program untuk
TipeException1
} catch (tipeException2 e) {
......//blok program untuk
TipeException2
} finally {
......//blok program
}

C.     Exception
Exception adalah sebuah event yang menjalankan alur proses normal pada program. Event ini biasanya berupa kesalahan(error) dari beberapa bentuk. Ini disebabkan program berakhir tidak normal.

Pada dasarnya, Exception merupakan subkelas dari kelas java.lang. Karena Exception adalah sebuah kelas maka hakikatnya ketika program berjalan dan muncul sebuah bug atau kesalahan, maka bug tersebut dapat dianggap sebuah object.

D.     Exception Handling
Exception Handling merupakan fasilitas di java yang memberikan flexibilitas kepada developer untuk menangkap bug atau kesalahan yang terjadi ketika program berjalan.

Ada 5 keyword penting dalam java untuk exception handling ini, yaitu : Try, catch, finally, throw, throws. Semua class exception terdapat dalam package java.lang. Superclass tertinggi adalah class Throwable, tetapi hampir tidak pernah digunakan.

E.     Aturan Penanganan Error
Untuk menangani error, gunakan blok try-catch-throwthrows-finally. Bentuk umum dari blok try-catch-finally adalah :

try{
//tulis pernyataan yang dapat mengakibatkan exception
//dalam blok ini
}
catch( <exceptionType1><varName1> ){
//tulis aksi apa dari program Anda yang dijalankan jika ada
//exception tipe tertentu terjadi
}

Aturan dalam membuat try-catch-finally:
1.        Notasi blok bersifat perintah.
2.        Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu blok finally.
3.        Blok catch dan blok finally harus selalu muncul dalam konjungsi dengan blok try, dan di atas urutan.
4.        Blok try harus diikuti oleh paling sedikit satu blok catch ATAU satu blok finally, atau keduanya.
5.        Setiap blok catch mendefinisikan sebuah penanganan exception. Header dari blok catch harus membawa satu argumen, dimana exception pada blok tersebut akan ditangani.

Class Error è tipe exception yang seharusnya tidak ditangani dengan
menggunakan blok try catch karena berhubungan dengan Java run-time
system/evironment.
Class Exception è tipe exception yang sebaiknya ditangani oleh program kita
secara langsung.

F.      Method Overriding dan Exception
Method Overriding merupakan parent class yang  ditulis kembali oleh subclass. Aturan :
1.        Parameter pada method di subclass harus sama dengan parameter di parent class
2.        Aturan hak akses method overriding di subclass tidak boleh lebih ketat dibandingkan hak akses parent class.
Contoh è
public class Binatang {
public void bergerak (){
                 System.out.println(“Binatang bergerak sesuai kemampuannya”);
                 }
public void berkembangBiak(){
                 System.out.println(“Binatang berkembang biak sesuai kemampuannya”);
                 }
}

Semua kelas exception java mewarisi secara langsung atau tidak langsung dari Throwable. Kelas exception dapat diciptakan sendiri dengan cara mewarisi exception atau subclass exception. Dapat diklasifikasikan menjadi 3 tipe utama :
1.        Error System
Kelas error mendeskripsikan error internal. Jika terjadi, kita dapat memberitahukan kepada user dan menghentikan program secara normal. Contoh sub-kelas Error :

a)        LinkageError = Kelas punya ketergantungan pada kelas lain, tapi kelas lain telah diubah tanpa menjaga kompatibilitasnya setelah kompilasi dilakukan terhadap kelas pertama.
b)        VirtualMachineError = JVM telah kehabisan sumber daya yang dibutuhkan untuk melanjutkan operasi.

2.        Exception yang direpresentasikan kelas Exception
Mendeskripsikan error-error yang diakibatkan oleh program dan lingkungan luar. Error ini ditangkap dan ditangani oleh program kita. Contoh subkelas Exception:

a)        ClassNotFoundException = Percobaan menggunakan suatu kelas yang tidak ada.
b)        IOException = Berkaitan dengan operasi I/O yang tidak valid, membaca melampaui akhir suatu file, dan membuka file yang tidak ada. Subkelas dari IOException : InterruptedIOException, EOFException, FileNotFoundException.

3.        Exception runtime yang direpresentasikan  kelas RunTimeException
Mendeskripsikan kesalahan pemrograman, seperti casting yang salah, pengaksesan array diluar batas, dan kesalahan numerik. Exception runtime dilempar oleh JVM. Beberapa sub-kelas RunTimeException :

a)        Exception ArithmeticException = Kesalahan pada operasi aritmatika.
b)        IndexOutOfBoundsException = Beberapa jenis indeks diluar batas.
c)        NegativeArraySizeException = Array diciptakan dengan ukuran negatif.
d)       NullPointerException = Penggunaan acuan null yang tidak valid.
e)        ArrayStoreException = Penyimpanan array dengan tipe data yang tidak sesuai.
f)         ClassCastException = Cast yang tidak valid.
g)        IllegalArrayArgumentException = Argumen yang tidak benar.
h)        SecurityException = Aturan sekuriti yang dilanggar.
i)          IllegalMonitorStateException = Operasi monitor illegal.
j)          IllegalStateException = Lingkungan yang tidak benar.
k)        UnsupportedOperationException = Operasi yang tidak didukung.

Tidak ada komentar:

Posting Komentar