Jelajahi eBook
Kategori
Jelajahi Buku audio
Kategori
Jelajahi Majalah
Kategori
Jelajahi Dokumen
Kategori
COMP6598
Introduction to Programming
Minggu 6
Sesi 10
Exception Handling
1. LO1 : Peserta diharapkan dapat merancang dan menerapkan algoritma yang tepat
dalam menyelesaikan permasalahan
OUTLINE MATERI(Sub-Topic):
1. 3 Kinds of Errors
2. Exception handling
3. Exception types
Kesalahan yang terjadi dalam programming dapat dikelompokkan dalam tiga jenis yaitu
syntax error, runtime error dan logic error
Syntax Error
Merupakan error (kesalahan) yang terdeteksi oleh kompiler. error ini akibat dari
kesalahan dalam penulisan code, seperti kesalahan keyword, menghilangkan tanda baca yang
dibutuhkan, ataupun kurang kurung kurawal. Kesalahan ini mudah dideteksi, hal ini
dikarenakan kompiler akan memberitahu dimana kesalahan tersebut terjadi. Perhatikan
contoh berikut ini
Output :
Logic error
Merupakan error (kesalahan) yang terjadi ketika sebuah program tidak berjalan sesuai
dengan yang diinginkan. Perhatikan contoh dibawah ini
Hasil yang didapatkan adalah 67 derajat Fahrenheit, yang sebenarnya adalah salah.
Hasil yang seharusnya didapatkan adalah 95.0
Kesalahan tersebut dikarenakan pembagian bilangan integer adalah sebuah integer,
sehingga hasil 9/5 menjadi 1, padahal hasil yang diinginkan adalah 1.8, oleh karena
itu seharusnya angka yang digunakan adalah 9.0 / 5.
Runtime Error
Runtime error terjadi ketika JVM mendeteksi adanya operasi pada program berjalan
tidak dapat dilanjutkan. Sebagai contoh disaat program akan mengakses array yang memiliki
index lebih besar dari yang sudah dideklarasikan, maka sebuah runtime error akan terjadi
dengan tipe exception adalah ArithmeticException. Perhatikan contoh berikut ini
Pembagi bilangan tersebut adalah nol sehingga tidak dapat dihitung hasilnya.
Exception handling
Dalam java, runtime error akan menghasilkan exception. Exception adalah sebuah object
yang menyampaikan adanya error ataupun kondisi yang menghalangi program berjalan
secara normal. Apabila exception tersebut tidak ditangani, maka program akan berhenti.
Output
Pada cara yang pertama, program akan memeriksa nilai dari variabel number2, Apabila
bernilai nol maka akan masuk ke dalam statement setelah else yaitu mencetak tulisan
“Divisor cannot be zero ”
Output
Pada cara yang kedua dibawah ini menggunakan try dan catch. Saat menjalankan
statement result = number1/number2 (baris 12) maka ArithmeticException terjadi dan
selanjutnya berpindah ke blok catch. Perintah di dalam blok catch akan dijalankan dan
menampilkan tulisan “Exception : an integer cannot be divided by zero” (baris ke 15)
Exception merupakan object dan object didefinisikan dengan menggunakan class. Class
utama dari exception adalah java.lang.Throwable. Ada banyak class exception yang dapat
langsung digunakan pada Java API.
Throwable class adalah class utama dari exception. Semua exception class mewarisi
secara langsung ataupun tidak langsung dari class Throwable. Programmer juga dapat
membuat sendiri class exception dengan memodifikasi exception atau subclass dari exception
class yang ada.
System error : error ini dikeluarkan oleh JVM dan terdapat dalam class Error. Class
error ini menyampaikan adanya error dalam system internal.
Exception handling
Exception handling di Java terdiri atas tiga operasi : declaring an exception, throwing an
exception, dan cacthing an exception
Declaring exception
Dalam Java, setiap statement yang dijalankan adalah milik dari sebuah method. Program
akan dimulai dari main method. Setiap method harus menuliskan tipe dari checked exception
yang mungkin akan dikeluarkan. Hal ini disebut dengan declaring exception. Dikarenakan
system error dan runtime error dapat terjadi pada code mana saja, maka JAVA tidak
membutuhkan deklarasi Error dan RuntimeException (unchecked exception) secara
eksplisit di method.
Namun, exception yang lain harus dideklarasikan pada judul method sehingga modul yang
memanggil method mendapatkan informasi akan exception tersebut.
Apabila method ingin mengeluarkan lebih dari satu exception maka setiap exception
dipisahkan dengan koma setelah keyword throws
Throwing Exception
Sebuah program yang mendeteksi error dapat membuat sebuah exception yang tepat dan
mengirimkannya. Hal ini dikenal dengan throwing an exception. Perhatikan contoh berikut
yang menyatakan bahwa adanya kesalahan dalam argument yang dikirimkan ke method
(misalnya saja nilai yang dikirimkan seharusnya tidak negative , tetapi ternyata yang terkirim
adalah nilai negative) , maka program dapat membuat IllegalArgumentException sebagai
berikut :
Catching Exception
Salah satu cara untuk menangkap ataupun menangani exception adalah menggunakan
block try-catch sebagai berikut :
Apabila ternyata tidak terjadi exception, maka block catch akan dilewatkan. Namun
Apabila ada salah satu dari statement di dalam block try menghasilkan exception, maka
statement berikutnya di dalam block try akan dilewatkan dan masuk ke dalam proses mencari
code yang menangani exception tersebut. Code yang menangani exception disebut dengan
exception handler.
Cara kerjanya adalah dimulai dengan menelusuri setiap blok catch yang ada satu persatu,
untuk melihat apakah ada exception yang sesuai. Apabila tidak ditemukan handler maka
program akan dihentikan dan pesan error akan muncul. Proses menemukan handler ini
disebut dengan catching an exception.
Finally
Finally selalu dijalankan tanpa melihat apakah exception terjadi atau tidak. Penulisan
Finally adalah sebagai berikut
try {
statements;
}
catch (TheException ex) {
handling ex;
}
finally {
finalStatements;
}
Output:
Exception Handling merupakan operasi yang sangat penting dan wajib diterapkan
dalam pengembangan aplikasi yang berperan untuk menangkap dan menangani error yang
terjadi selama program dijalankan. Pada penerapannya dibutuhkan beberapa klausa sebagai
struktur utamanya, yakni try, catch, dan finally.
2. http://www.javabeginner.com/java-exceptions.htm
3. https://docs.oracle.com/javase/tutorial/essential/exceptions/handling.html
4. https://docs.oracle.com/javase/tutorial/essential/exceptions/try.html
5. https://docs.oracle.com/javase/tutorial/essential/exceptions/catch.html
6. https://docs.oracle.com/javase/tutorial/essential/exceptions/finally.html
7. http://www.javatpoint.com/finally-block-in-exception-handling