0 penilaian0% menganggap dokumen ini bermanfaat (0 suara)
316 tayangan
Modul 6 PBO (Exception Handling) PDF
Dokumen ini membahas tentang penanganan exception dalam pemrograman berorientasi objek. Terdapat penjelasan tentang konsep exception handling, hierarki kelas exception, keyword try-catch-finally dan throws untuk menangani exception. Modul ini berisi latihan-latihan untuk mempraktikkan penggunaan exception handling dalam program Java.
0 penilaian0% menganggap dokumen ini bermanfaat (0 suara)
316 tayangan
Modul 6 PBO (Exception Handling) PDF
Dokumen ini membahas tentang penanganan exception dalam pemrograman berorientasi objek. Terdapat penjelasan tentang konsep exception handling, hierarki kelas exception, keyword try-catch-finally dan throws untuk menangani exception. Modul ini berisi latihan-latihan untuk mempraktikkan penggunaan exception handling dalam program Java.
Dokumen Laboratorium Teknik Informatika UMM @ 2014 Modul Praktikum Pemrograman Berorientasi Objek
By. Team Informatika UMM
Pemrograman Berorientasi Objek Lab.Assignment: Exception Handling A. Tujuan : 1. Mahasiswa mampu memahami konsep Exception Handling dalam suatu program 2. Mahasiswa mampu memahami perbedaan antara kode program java yang memanfaatkan Exception Handling dan yang tidak memanfatkan. 3. Mahasiswa mampu mengimplementasikan kata kunci try, catch, dan finally di dalam menangani exception 4. Mahasiswa mampu memahami dan mengerti tentang hierarki dari class Exception yang ada di dalam bahasa pemrograman java. B. Dasar Teori : Exceprion Handling Exception adalah event, yang terjadi ketika program dieksekusi, yang ngakibatkan terganggunya alur program secara normal Ketika error terjadi di suatu method, maka method tersebut akan membuat object yang kemudian dikirim ke runtime system. Object ini, yang disebut sebagai exception object, mengandung informasi tentang error yang terjadi, termasuk tipe dan kondisi program pada saat error terjadi. Proses pembuatan exception object dan kemudian mengi r i mnya ke r unti me system i ni di sebut sebagai t h ro w i n g a n exception (melemparkan exception). Setelah method melemparkan exception, runtime system akan berusaha untuk mencari solusi untuk menangani masalah yang ada. Solusi yang ada bisa jadi lebih dari satu, oleh karena itu runtime system akan memilih berdasarkan suatu urutan yang berdasar pada method tempat terjadinya error dan atau method lain yang memanggil method tersebut. Urutan ini disebut call stack. (lihat gambar)
Runtime system mencari method yang memiliki blok untuk menangani error yang terjadi berdasarkan call stack. Pencarian dimulai dari tempat terjadinya error ,kemudian dirunut berdasarkan call stack secara reverse order. Jika ditemukan blok untuk menangani error yang bersangkutan, maka system akan menyerahkan exception ke handler.
Dokumen Laboratorium Teknik Informatika UMM @ 2014 Modul Praktikum Pemrograman Berorientasi Objek By. Team Informatika UMM
Penyerahan exception ini disebut sebagai catch the exception (menangkap exception). Jika system tidak menemukan handler yang sesuai di call stack, maka runtime system akan menghentikan jalannya program. (lihat gambar)
- Checked exceptions: merupakan exception yang disebabkan oleh kesalahan pemakai program atau hal lain yang dapat diprediksi oleh pemrogram. Contohnya, jika ingin membuka file tapi file tidak ditemukan, maka exception akan muncul. - Runtime exception: ini adalah exception yang muncul dimana kemunculannya tidak bisa dihindari oleh pemrogram. - Errors: Ini sebenarnya bukan exception, namun merupakan masalah yang muncul diluar kendali pemakai dan pemrogram. Error secara umum akan dibiarkan saja, sebab tidak ada yang bisa dilakukan untuk mengatasinya. Sebagai contoh, jika stack overflow muncul, maka error akan muncul.
Method-method di class exception: public String getMessage() mengembalikan detail informasi mengenai exception yang terjadi.Informasi ini diinisialisasi oleh constructor milik Throwable public Throwable getCause() menampilkan penyebab dari exception public String toString() mendapatkan nama exception ditambah informasinya public void printStackTrace() menampilkan hasil toString() beserta stack trace System.err public StackTraceElement[] getStackTrace() mengembalikan array yang berisi semua elemen di stack trace. Elemen ke 0 mewakili bagian atas call stack, dan elemen akhir array mewakili bagian akhir call stack public Throwable fillInStackTrace() mengisi stack trace dari object Throwable dengan stack trace yang terdeteksi, menambah ke dalam stack trace
Dokumen Laboratorium Teknik Informatika UMM @ 2014 Modul Praktikum Pemrograman Berorientasi Objek By. Team Informatika UMM
Menangkap Exception: Method menangkap exception menggunakan kombinasi try dan catch keywords. Kode program yang dapat menimbulkan exception diletakkan di dalam blok try . Sintaks penggunaan try-catch adalah sebagaimana berikut: try { //Protected code }catch(ExceptionName e1) { //Blok Catch }
Statement catch disertai dengan deklarasi tipe exception yang ingin ditangani. Jika exception terjadi di bagian protected code, maka blok catch akan melakukan pemeriksaan. Jika tipe exceptionnya ada di dalam blok catch, maka exception yang bersangkutan akan ditangani Contoh: Berikut adalah array dua dimensi. Kemudian program akan mengakses elemen ke 3 dari array tersebut, sehingga mengakibatkan exception
// File Name : ExcepTest.java import java.io.*; public class ExcepTest{
public static void main(String args[]){ try{ int a[] = new int[2]; System.out.println("Access element three :" + a[3]); }catch(ArrayIndexOutOfBoundsException e){ System.out.println("Exception thrown :" + e); } System.out.println("Out of the block"); } } Program diatas akan menghasilkan: Exception thrown :java.lang.ArrayIndexOutOfBoundsException: 3 Out of the block Keyword throws dan throw Jika method tidak dapat menangani exception, maka method tersebut harus mendeklarasikan jenis exception yang mungkin dilemparkan menggunakan kata throws. Kata throws digunakan pada bagian deklarasi method. Berikut adalah sebuah method yang melemparkan RemoteException import java.io.*; public class className { public void deposit(double amount) throws RemoteException { // Method implementation throw new RemoteException();
Dokumen Laboratorium Teknik Informatika UMM @ 2014 Modul Praktikum Pemrograman Berorientasi Objek By. Team Informatika UMM
} //Remainder of class definition }
Pada suatu method dapt didefinisikan lebih dari satu macam keluaran exception yang dipisahkan dengan tanda koma (,). Sebagai contoh: method berikut kemungkinan melemparkan Remote Exception dan nsufficientFundsException: import java.io.*; public class className { public void withdraw(double amount) throws RemoteException, InsufficientFundsException { // Method implementation } //Remainder of class definition } Keuntungan Menggunakan Exception 1. Memisahkan kode Error-Handling dari kode utama 2. Propagasi errors berdasarkan Call Stack 3. Pengelompokan dan Pembedaan Tipe Error
Dokumen Laboratorium Teknik Informatika UMM @ 2014 Modul Praktikum Pemrograman Berorientasi Objek By. Team Informatika UMM
1. Compile dan masukkan judul buku. 2. Ketika meng-inputkan judul buku ke 4 apa pesan error yang ditampilkan? 3. Mengapa terjadi error? 4. Sekarang coba ganti pesan errornya menjadi Rak buku penuh 5. Sekarang coba hapus try catch nya, apa yang terjadi? 6. Jadi apa guna try-catch dalam program ini?
Latihan 2 - Multiple Block Exception 1. Ketiklah codingan berikut ini
2. Masukkan input selain angka contoh : n, apa yang terjadi? 3. Hapus tanda // sebelum judulskripsi[3], jalankan, masukkan angka, apa yang terjadi? Mengapa? 4. Hapus salah satu catch dan jalankan program ulangi langkah 2 dan 3, apa yang terjadi?
Dokumen Laboratorium Teknik Informatika UMM @ 2014 Modul Praktikum Pemrograman Berorientasi Objek By. Team Informatika UMM
E. Tugas Praktikum
1. Buatlah program untuk memasukkan data buku melalui class KelolaBuku (menggunakan enkapsulasi) dan kemudian diambil dan disimpan ke String Infobuku kemudian di tampilkan datanya 2. Beri Exception Handling untuk semua kemungkinan error yang muncul, contoh jika jumlah_hal memakai tipe data int, lalu kita salah input karakter huruf 3. Gunakan perulangan tanpa batas untuk input data tersebut, akan berhenti ketika user menghendaki, atau inputan melebihi batas array