2.1 Tujuan
Dasar
penanganan exception telah dikenalkan pada anda di kursus pemrograman pertama.
Bab ini membahas secara lebih dalam mengenai exception dan juga sedikit
menyinggung tentang assertion.
Setelah
menyelesaikan pembahasan, anda diharapkan dapat :
1. Menangani exception dengan menggunakan
try, catch dan finally
2. Membedakan penggunaan antara throw
dengan throws
3. Menggunakan exception class yang
berbeda - beda
4. Membedakan antara checked exceptions
dan unchecked exceptions
5. Membuat exception class tersendiri
6. Menjelaskan keunggulan penggunaan
assertions
7. Menggunakan assertions
2.2 Apa itu Exception?
2.2.1 Pendahuluan
Bugs
dan error dalam sebuah program sangat sering muncul meskipun program tersebut
dibuat oleh programmer berkemampuan tinggi. Untuk menghindari pemborosan waktu
pada proses error-checking, Java menyediakan mekanisme penanganan exception.
Exception
adalah singkatan dari Exceptional Events. Kesalahan (errors) yang terjadi saat
runtime, menyebabkan gangguan pada alur eksekusi program. Terdapat beberapa
tipe error yang dapat muncul. Sebagai contoh adalah error pembagian 0,
mengakses elemen di luar jangkauan sebuah array, input yang tidak benar dan
membuka file yang tidak ada.
2.2.2
Error dan Exception Classes
Seluruh
exceptions adalah subclasses, baik secara langsung maupun tidak langsung, dari
sebuah root class Throwable. Kemudian, dalam class ini terdapat dua kategori
umum : Error class dan Exception class.
Exception
class menunjukkan kondisi yang dapat diterima oleh user program. Umumnya hal tersebut
disebabkan oleh beberapa kesalahan pada kode program. Contoh dari exceptions
adalah pembagian oleh 0 dan error di luar jangkauan array.
Error
class digunakan oleh Java run-time untuk menangani error yang muncul pada saat
dijalankan. Secara umum hal ini di luar control user karena kemunculannya
disebabkan oleh run-time environment. Sebagai contoh adalah out of memory dan
harddisk crash.
2.2.3
Sebuah Contoh
Perhatikan
contoh program berikut :
class DivByZero {
public static void main(String
args[]) System.out.println(3/0);
System.out.println("Cetak.");
}
}
Jika
kode tersebut dijalankan, akan didapatkan pesan kesalahan sebagai berikut :
Exception
in thread "main" java.lang.ArithmeticException: / by zero at
DivByZero.main(DivByZero.java:3)
Pesan
tersebut menginformasikan tipe exception yang terjadi pada baris dimana
exception itu berasal. Inilah aksi default yang terjadi bila terjadi exception
yang tidak tertangani. Jika tidak terdapat kode yang menangani exception yang
terjadi, aksi default akan bekerja otomatis. Aksi tersebut pertama-tama akan
menampilkan deskripsi exception yang terjadi. Kemudian akan ditampilkan stack
trace yang mengindentifikasi method dimana exception terjadi. Pada bagian
akhir, aksi default tersebut akan menghentikan program secara paksa.
Bagaimana
jika anda ingin melakukan penanganan atas exception dengan cara yang berbeda?
Untungnya, bahasa pemrograman Java memiliki 3 keywords penting dalam penanganan
exception, yaitu try, catch dan finally.
2.3 Menangkap Exception
2.3.1 Try - Catch
Seperti
yang telah dijelaskan sebelumnya, keyword try, catch dan finally digunakan
dalam menangani bermacam tipe exception. 3 Keyword tersebut digunakan bersama,
namun finally bersifat opsional. Akan lebih baik jika memfokuskan pada 2 keyword
pertama, kemudian membahas finally pada bagian akhir.
Berikut
ini adalah penulisan try-catch secara umum :
try
{
<code
to be monitored for exceptions> } catch (<ExceptionType1>
<ObjName>) {
<handler
if ExceptionTypel occurs>
}
}
catch (<ExceptionTypeN> <ObjName>) {
<handler
if ExceptionTypeN occurs>
Baca juga Pengenalan Bahasa JAVA
0 Response to "Exceptions dan Assertions"
Post a Comment