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