Programming Language Concept Session 11
- Di bahasa tanpa exception handling:
– Ketika suata exception terjadi, control menjadi milik operating system, dimana suatu message ditampilkan dan program tersebut berakhir - Di bahasa dengan exception handling:
– Program diperbolehkan menjebak beberapa exception, dengan itu menyediakan kemungkinan memperbaiki masalah tersebut dan melanjutkan - Exception merupakan kejadian tak biasa, keliru atau tidak, yang terdeteksi oleh hardware atau software dan yang mungkin memerlukan pemrosesan special
- Pemrosesan special yang mungkin dibutuhkan ketika exception dideteksi dikenal dengan exception handling
- Exception handling dilakukan oleh unit code atau segmen yang dikenal dengan exception handler
- Exception raised ketika kejadian yang sehubungan dengannya terjadi
- Di beberapa bahasa berbasi C mengenalnya dengan sebutan thrown, bukan raised
- Alternatif exception handling:
– Mengirim parameter pembantu atau menggunakan return value untuk menandakan status return dari suatu subprogram
– Melempar label parameter ke semua subprogram (error return ke label yang dilempar)
– Melempar exception handling subprogram ke semua subprogram - Keuntungan exception handling built-in:
– Tanpa exception handling, deteksi code error membosankan untuk ditulis dan mengacaukan program
– Exception handling mengajak programmer untuk memperkirakan banyak kemungkinan error
– Exception progagation memperbolehkan penggunanan level tinggi code exception handling - Alur control exception handling
Exception Handling di C++
- Bentuk:
try {
— code that is expected to raise an exception
}
catch (formal parameter) {
— handler code
}
…
catch (formal parameter) {
— handler code
}
- catch merupakan nama semua handler, merupakan overloaded name sehingga formal parameter harus unik
- Formal parameter dari catch tidak harus memiliki variable
- Formal parameter dari catch dapat digunakan untuk memindahkan infromasi ke handler
- Formal parameter dari catch dapat berbentuk ellipsis (…), yang mana case yang di-handlenya merupakan exception yang belum di-handle
- Semua exception di-raise secara explisit oleh pernyataan
throw [expression];
- Bracket di code diatas merupakan metasymbol yang digunakan untuk menjelaskan bahwa expresi tersebut optional
- Throw tanpa operand hanya dapat muncul di handler, ketika ia muncul, ia hanya me-raise kembali exception tersebut, yang mana kemudian dihandle di tempat lain
- Tipe expresi tidak membuat ambigu handler yang dimaksudkan
- Unhandler exception:
– Unhandled expcetion disebarkan ke pemanggil fungsi dimana ia di-raise
– Penyebaran ini berlanjut ke fungsi utama
– Jika tak ditemukan handler, handler default dipanggil - Setelah handler menyelesaikan eksekusinya, control mengalir ke pernyataan pertama dari handler terakhir di rentetan handler yang merupakan suatu elemen
Event Handling di Java
- Event merupakan notifikasi bahwa sesuatu yang spesifik telah terjadi, seperti klik-an mouse di tombol graphical
- Event handler merupakan segmen code yang dieksekusi untuk menanggapi suatu event
- Komponen Java Swing GUI:
– Text box merupakan objek dari kelas JTextField
– Radio button merupakan objek dari kelas JRadioButton
– Tampilan Applet merupakan frame, suatut struktur multilayered
– Content pane merupakan satu layer, dimana applet meletakkan output
– Komponen GUI dapat diletakkan di suatu frame
– Layout manager object digunakan untuk mengontrol peletakan komponen - Java event model:
– Interaksi user dengan komponen GUI membuat event yang dapat ditangkap oleh event handler, dikenal dengan event listener
– Event generator memberitahu listener event dengan mengirim suatu pesan
– Interface digunakan untuk membuat metode event handling sesuai dengan protocol standar
– Kelas yang mengimplementasi listener harus mengimplementasi suatu interface untuk listener tersebut
– Salah satu kelas event adalah ItemEvent, yang berhubungan dengan event mengklik checkbox, radio button, atau list item
– Interface ItemListener menentukan metode, itemStateChanged, yang mana merupakan handler untuk event ItemEvent
– Listener dibentuk dengan addItemListener
Sumber:
- Concept of Programming Languages 10th. Ed / Robert W. Sebesta (Chapter 14)
- Exception Handling & Event Handling / Binus Powerpoint Presentation