Post on 05-Jun-2019
Pemrograman Lanjut
PTIIK - 2013
Exception Handling
Objectives
Memahami konsep dan MendefinisikanException Handling
Menangani exception menggunakan blok try-catch-finally
Keyword throw dan throws Kategori Exceptions
2
Exception Bugs dan error dalam sebuah program sangat
sering muncul meskipun program tersebutdibuat oleh programmer berkemampuantinggi.
Untuk menghindari pemborosan waktu padaproses error-checking, Java menyediakanmekanisme penanganan exception
Exception adalah singkatan dari Exceptional Events. Kesalahan (errors) yang terjadi saatruntime, menyebabkan gangguan pada alureksekusi program
3
Exception Handling
Exception Handling adalah teknik yang dipakaidalam Java dalam menangani kondisi yang tidak biasa dalam menjalankan operasinormal dalam program
exception ArrayIndexOutOfBounds, yang terjadi jika kita mencoba mengakses elemenarray yang tidak ada
exception NumberFormatException, yang terjadi ketika kita mencoba melalui parameter bukan angka dalam method Integer.parseInt
4
Menangani Exception
Untuk menangani exception dalam Java, kitagunakan blok try-catch-finally.
Apa yang kita lakukan dalam program kitaadalah kita menempatkan pernyataan yang mungkin menghasilkan exception dalam blok ini
5
Bentuk Umum
Exception dilemparkan selama eksekusi dari blok try dapat ditangkap dan ditangani dalam blok catch.
Kode dalam blok finally selalu dieksekusi
6
Sintak dari Konstruksi try-catch-finally
Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch,
tetapi hanya satu blok finally. Blok catch dan blok finally harus selalu muncul dalam
konjungsi dengan blok try, dan diatas urutan Blok try harus diikuti oleh paling sedikit satu blok
catch ATAU satu blok finally, atau keduanya. Setiap blok catch mendefinisikan sebuah penanganan
exception. Header dari blok catch harus membawasatu argumen, dimana exception pada blok tersebutakan ditangani.
7
Alur Kejadian try-catch-finally
8
Contoh
Tulis kode berikut :
Untuk mengatasinya tambahkan seperti kode berikut:
9
Latihan
Diberikan kode program berikut:
Ubah program TestExceptions untuk menanganiexception, keluaran program setelah ditangkapexception-nya akan seperti ini
10
Error dan Exception Classes
Seluruh exceptions adalah subclasses, baik secara langsung maupun tidaklangsung, dari sebuah root class Throwable.
class Throwable terdapat dua kategoriumum : Error class dan Exception class
Exception class menunjukkan kondisiyang dapat diterima oleh user program
Error class digunakan oleh Java run-time untuk menangani error yang muncul padasaat dijalankan
11
Error dan Exception Classes
Exception Class umumnya disebabkan olehbeberapa kesalahan pada kode program. Contoh dari exceptions adalah pembagian oleh 0 dan
error di luar jangkauan array Error Class umumnya di luar control user
karena kemunculannya disebabkan oleh run-time environment. contohnya adalah out of memory dan harddisk crash
12
Contoh
Aksi tersebut pertama-tama akan menampilkandeskripsi exception yang terjadi
Kemudian akan ditampilkan stack trace yang mengindentifikasi method dimana exception terjadi
Pada bagian akhir, aksi default tersebut akanmenghentikan program secara paksa
13
Try - Catch
Seperti yang telah dijelaskan sebelumnya, keyword try, catch dan finally digunakan dalammenangani bermacam tipe exception.
Keyword tersebut digunakan bersama, namunfinally bersifat opsional.
14
Single Try-Catch
Gunakan contoh kode tersebut pada program DivByZero yang telah dibuat sebelumnya
15
Multiple Try-Catch
Berikut adalah contoh kode yang menangani lebih dari satuexception :
Baris ke-4 akan menghasilkan kesalahan berupaArrayIndexOutOfBoundsException bilamana seorang user alpadalam memasukkan argument
Baris ke-5 akan menghasilkan kesalahan ArithmethicException jikapengguna memasukkan nilai 0 sebagai sebuah argument
16
Pelajari apakah yang akan terjadi terhadapprogram bila argumen – argumen berikutdimasukkan oleh user : Tidak ada argument 1 0
17
Nested Try-Catch
Penggunaan try bersarang diperbolehkan dalam pemrograman Java
18
Pelajari apa yang akan terjadi pada program jikaargument – argument berikut dimasukkan : Tidak ada argumen 15 15 3 15 0
19
Nested try-catch dengan method
Kode berikut menggunakan try bersarangtergabung dengan penggunaan method
20
Keyword finally
Berikut ini cara penggunaan keyword finally :
Blok finally mengandung kode penanganansetelah penggunaan try dan catch.
Blok kode ini selalu tereksekusi walaupunsebuah exception terjadi atau tidak pada bloktry
21
Keyword finally
Terdapat 4 kemungkinan skenario yang berbedadalam 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 dalamblok catch terhadap exception yang terjadi.
kebalikan dari skenario ketiga
22
Keyword throw
Disamping menangkap exception, Java jugamengijinkan seorang user untuk melemparsebuah exception.
Sintax pelemparan exception cukup sederhana.
23
Contoh
24
Keyword Throws
Jika sebuah method dapat menyebabkansebuah exception namun tidak menangkapnya, maka digunakan keyword throws.
Aturan ini hanya berlaku pada checked exception
Berikut penulisan syntax menggunakan keyword throws :
25
Keyword Throws
Sebuah method perlu untuk menangkap ataupun mendaftarseluruh exceptions yang mungkin terjadi, namun hal itu dapatmenghilangkan tipe Error, RuntimeException, ataupunsubclass-nya
Contoh berikut ini menunjukkan bahwa method myMethodtidak menangani ClassNotFoundException
26
Kategori Exception Root class dari seluruh exception classes adalah Throwable class
27
Aturan Exception
Catch lebih dari satu harus berurutan darisubclass ke superclass
28
Checked dan Unchecked Exceptions
Checked exceptions adalah exception yang diperiksa oleh Java compiler.
Compiler memeriksa keseluruhan program apakah menangkap atau mendaftar exception yang terjadi dalam sintax throws.
Apabila checked exception tidak didaftarataupun ditangkap, maka compiler error akanditampilkan
29
Checked dan Unchecked Exceptions
Unchecked exceptions tidak berupa compile-time checking dalam penanganan exceptions.
Fondasi dasar dari unchecked exception classes adalah Error, RuntimeException dansubclass-nya
30
User Defined Exceptions
Meskipun beberapa exception classes terdapatpada package java.lang namun tidak mencukupiuntuk menampung seluruh kemungkinan tipeexception yang mungkin terjadi.
Dalam pembuatan tipe exception anda sendiri, anda hanya perlu untuk membuat sebuahextended class terhadap RuntimeExceptionclass, maupun Exception class lain
31
Contoh
32
afif.supianto@ub.ac.id081 331 834 734 / 088 160 127 40