Exception Handling (Penanganan Error)

Slides:



Advertisements
Presentasi serupa
EXCEPTION HANDLING.
Advertisements

Java Fundamentals: 5. Java Advanced
Try, Catch, Finally Throws
Java Progamming Operasi I/O
Abstract Class & Interface
PEMROGRAMAN KOMPUTER 2 4 SKS 2 TEORI DAN 2 PRAKTEK NANDANG HERMANTO. S.Kom.
Dasar Exception Handling
Flow Control & Exception Handling
Pemrograman Berorientasi Objek
MATA KULIAH : PEMROGRAMAN 3 JAVA PROGRAMMING (JSE)
Pemrograman Berbasis Obyek Oleh Tita Karlita
Pemrograman Berorientasi Objek
Dasar exception handling
Pemrograman Berorientasi Objek 1
Mendapatkan input dari keyboard
Struktur Kode Aplikasi Java (1)
As’ad Djamalilleil Function (method) As’ad Djamalilleil
EXCEPTION TRY-CATCH-FINALLY
Argumen Command-line Sebuah aplikasi Java dapat menerima sejumlah argumen dari command-line. Argumen dari command line memberikan kesempatan bagi.
Exceptional Pendahuluan Bugs dan error dalam sebuah program sangat sering muncul meskipun program tersebut dibuat oleh programmer berkemampuan tinggi.
Pertemuan 12 Pemrograman Berbasis Obyek Oleh Tita Karlita
Do you remember this?.  Strategy  Concrete Strategy  Context  Client Strategy Pattern consists of..
- PERTEMUAN 4- EXCEPTION
MATERI IV OOP (Object Oriented Programming) Chapter II.
Dasar exception handling
Try, Catch, Finally Throws
Pemrograman berbasis obyek
Algoritma & Pemrograman 1
Penanganan Eksepsi.
Mendapatkan input dari keyboard
Exception Handling (Penanganan Error)
Socket Programming - 1 (TCP)
Penanganan Eksepsi Disusun Oleh: Reza Budiawan Untuk:
Teori Pertemuan 9 “Exception”
Inner Class dan Eksepsi (Exception)
PBO Daniel Riano Kaparang, S.Kom., M.Cs
Pertemuan 2 SINTAKS BAHASA, TIPE DATA, DAN OPERATOR
Konsep Dasar Exception Handling
Penanganan Eksepsi Pertemuan Ke- 9.
Input/output dan Kelas File
INPUT DATA, PERCABANGAN & PERULANGAN DENGAN JAVA
BAB XI EXCEPTION HANDLING.
Dosen : Bella Hardiyana, S. Kom
Exception dan Assertion
Tugas Minggu Ke 9 PBO Siti Halisah
OPERASI FILE & EXCEPTION HANDLING
Tipe Data, Variabel, dan Operator
As’ad Djamalilleil Elemen Dasar Java As’ad Djamalilleil
Socket Programming - 1 (TCP)
As’ad Djamalilleil Function (method) As’ad Djamalilleil
Pemrograman Berorientasi Objek
Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator
Exception Handling, Package, Abstract Class & Interface
Tipe Data, Variabel, dan Operator
As’ad Djamalilleil Sinkronisasi Thread As’ad Djamalilleil
ASWAR R. Universitas Negeri Makassar
Pemrograman Berorientasi Objek 1
Exception Sussi.
Dasar Bahasa Java.
Exception Sussi.
Exception Sussi.
Pemrograman Berorientasi Object
Pemrograman Berorientasi Obyek
Dasar exception handling
Pemrograman Berorientasi Object
Penanganan Exception di Java
Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator
Tipe Data, Variabel, dan Operator
DPH1C4 Pemrograman berorientasi Obyek
FONDASI PEMROGRAMAN & STRUKTUR DATA #3 - 4
Transcript presentasi:

Exception Handling (Penanganan Error) As’ad Djamalilleil http://kampusku.my.id asad.kom@gmail.com

Definisi Exception Exceptional Event  sebuah event yang terjadi pada waktu eksekusi dari sebuah program, dimana mengganggu alir normal dari instruksi program Ketika terjadi error dalam sebuah method, maka method akan membuat sebuah objek (exception object) yang berisi informasi tentang error tersebut

Contoh exception User memasukkan data yang tidak tepat, misalnya: data angka yang diinginkan tapi huruf yang dimasukkan Sebuah file yang akan dibuka tidak ditemukan Koneksi jaringan yang putus ditengah komunikasi yang sedang berlangsung Dan lain-lain

Exception Handler Throwing exception  membuat sebuah objek exception dan mengirimnya ke sistem runtime Exception handler  sebuah blok yang berisi kode program untuk menangani exception Catching exception  Blok yang terpilih untuk menangani jenis exception itu bertugas menangkap exception

3 macam exception Checked exception Error (eksternal) Membaca file menggunakan class java.io.FileReader namun file tidak ditemukan sehingga memicu exception java.io.FileNotFoundException Error (eksternal) Kerusakan file pada saat pembacaan akan memicu exception java.io.IOError Runtime exception (internal) Exception yang diakibatkan oleh masalah internal seperti kesalahan logika atau yang diistilahkan dengan bug

Hirarki Exception Semua class exception merupakan turunan dari class java.lang.Exception Class Exception memiliki 2 sub-class, yaitu class IOException dan RuntimeException

Checked Exception Exception Keterangan ClassNotFoundException Class tidak ditemukan CloneNotSupportedException Mencoba untuk menggandakan objek yang tidak mengimplementasi interface Cloneable IllegalAccessException Akses ke sebuah class ditolak InstantiationException Mencoba untuk membuat objek dari class abstract atau interface InterruptedException Sebuah thread telah diinterupsi oleh thread lain NoSuchFieldException Field yang akan diakses tidak ditemukan NoSuchMethodException Method yang dipanggil tidak ditemukan

Unchecked RuntimeException Keterangan ArithmeticException Kesalahan perhitungan aritmatik, misalnya divide-by-zero ArrayIndexOutOfBoundsException Kesalahan karena mengakses index array diluar batas jumlah elemen yang tersedia ArrayStoreException Memberikan nilai ke elemen array dengan tipe yang tidak sesuai ClassCastException Casting data yang tidak benar IllegalArgumentException Penggunaan argumen yang tidak tepat dalam pemanggilan method IllegalMonitorStateException Monitoring operasi yang tidak tepat, misalnya menunggu thread yang tidak terkunci IllegalStateException Aplikasi berada dalam status yang tidak tepat IllegalThreadStateException Operasi yang diminta tidak sesuai dengan status thread IndexOutOfBoundsException Beberapa tipe index array berada di luar batas NegativeArraySizeException Array dibuat dengan jumlah elemen negatif

Exception Keterangan NullPointerException Kesalahan pada penggunaan nilai null NumberFormatException Kesalahan konversi dari format string ke numerik SecurityException Percobaan pelanggaran keamanan StringIndexOutOfBounds Mencoba mengakses index string di luar panjang string yang tersedia UnsupportedOperationException Ditemukan operasi yang tidak dapat dilakukan

Catching Exception Sebuah method menangkap exception menggunakan kombinasi keyword try dan catch Blok try/catch digunakan pada kode program yang memungkinkan untuk terjadinya sebuah exception

Sintaks Exception try { } catch(TipeException e) { Pada statement catch juga dideklarasikan tipe dari exception yang ingin ditangkap. Bila terjadi exception di dalam blok try, blok catch akan diperiksa. Bila tipe dari exception ada di dalam blok catch, maka exception akan diteruskan ke blok catch tersebut.

Exception Method Method Keterangan public String getMessage( ) Memberikan pesan detail tentang exception yang terjadi public Throwable getCause( ) Menampilkan penyebab dari terjadinya exception public String toString( ) Memberikan nama class dan disambung dengan hasil dari method getMessage( ) public void printStackTrace( ) Mencetak hasil dari method toString( ) bersama dengan stack trace ke System.err, output stream dari error yang terjadi public StackTraceElement [ ] getStackTrace( ) Memberikan array yang berisi setiap elemen pada stack trace. Elemen ke-0 berisi call stack teratas, sedangkan elemen terakhir mewakili method paling bawah dari call stack public Throwable fillInStackTrace( ) Berisi stack trace dari objek Throwable, dimana stack trace saat ini ditambah dengan informasi sebelumnya dari stack trace

Contoh 1 import java.io.*; public class CobaSaja{ public static void main(String args[]){ try { int a[] = new int[2]; System.out.println("Elemen ketiga :" + a[3]); } catch(ArrayIndexOutOfBoundsException e) { System.out.println("Exception yg dilempar :" + e); System.out.println("Keluar blok try/catch");

Multiple Catch Block try { } catch(TipeException1 e1){

Jika terjadi exception, maka exception akan dilempar ke blok catch pertama. Bila tipenya cocok dengan exception yang dilempar, maka akan ditangkap di blok catch tersebut, namun bila tidak cocok maka akan diteruskan ke blok catch berikutnya Dan seterusnya

Contoh 2 try { file = new FileInputStream(namaFile); x = (byte) file.read(); } catch(FileNotFoundException f) { f.printStackTrace(); return -1; catch(IOException i) { i.printStackTrace();

Keyword throws dan throw Ada beberapa method yang mengharuskan aplikasi untuk dapat menangani exception Bila sebuah method tidak kita inginkan untuk menangani exception, method tersebut harus dideklarasikan dengan menggunakan keyword throws pada akhir kepala method Exception dapat dilempar menggunakan keyword throw

Contoh 3.a import java.io.*; public class Coba{ public static void main(String[] args){ DataInputStream dis = new DataInputStream(System.in); String s = dis.readLine(); // IOException harus ditangkap int a = 0; try{ a = Integer.parseInt(s); }catch(NumberFormatException e){} System.out.println(a); }

Contoh 3.b import java.io.*; public class Coba{ public static void main(String[] args)throws IOException{ DataInputStream dis = new DataInputStream(System.in); String s = dis.readLine(); // IOException harus ditangkap int a = 0; try{ a = Integer.parseInt(s); }catch(NumberFormatException e){} System.out.println(a); }

Contoh 4 import java.io.*; public class Coba{ public static void main(String[] args)throws Exception{ DataInputStream dis = new DataInputStream(System.in); System.out.print("Input tanggal:"); try{ int tgl = Integer.parseInt(dis.readLine()); if(tgl<1 || tgl>31) throw new Exception("Tanggal tdk benar!"); }catch(NumberFormatException e){ System.out.println("Nilai yg diinput bukan angka!"); }catch(IOException e){ System.out.println("Kesalan penginputan!"); }

Keyword finally Keyword finally digunakan untuk membuat sebuah blok yang mengikuti blok try Kode program di dalam blok finally selalu dieksekusi, pada saat exception terjadi atau tidak Penggunaan blok finally memungkinkan kita untuk menjalankan pernyataan cleanup yang ingin dieksekusi, dalam kondisi apapun

Sintaks Finally try { } catch(TipeException e) { finally {

Contoh 5 import java.io.*; public class Coba{ public static void main(String args[]){ int a[] = new int[2]; try { System.out.println("Elemen ketiga :" + a[3]); } catch(ArrayIndexOutOfBoundsException e) { System.out.println("Exception yg dilempar :" + e); finally{ a[0] = 6; System.out.println("Elemen pertama: " + a[0]);

Membuat Class Exception Kita dapat membuat class exception kita sendiri di Java. Beberapa poin yang perlu diingat adalah sbb: Semua exception harus merupakan sub-class dari Throwable Bila ingin membuat sebuah checked exception, maka kita harus menurunkan dari class Exception Bila ingin membuat sebuah class runtime exception, maka kita harus menurunkan dari class RuntimeException

Sintaksnya class MyException extends Exception { }

Contoh 6.a // Nama file InsufficientFundsException.java import java.io.*; public class InsufficientFundsException extends Exception { private double amount; public InsufficientFundsException(double amount) this.amount = amount; } public double getAmount() return amount;

Contoh 6.b // Nama file CheckingAccount.java import java.io.*; public class CheckingAccount { private double balance; private int number; public CheckingAccount(int number) this.number = number; } public void deposit(double amount) balance += amount; public void withdraw(double amount) throws InsufficientFundsException if(amount <= balance) balance -= amount; else double needs = amount - balance; throw new InsufficientFundsException(needs); public double getBalance() return balance; public int getNumber() return number;

Contoh 6.c // Nama file BankDemo.java public class BankDemo { public static void main(String [] args) CheckingAccount c = new CheckingAccount(101); System.out.println("Depositing $500..."); c.deposit(500.00); try System.out.println("\nWithdrawing $100..."); c.withdraw(100.00); System.out.println("\nWithdrawing $600..."); c.withdraw(600.00); }catch(InsufficientFundsException e) System.out.println("Sorry, but you are short $" + e.getAmount()); e.printStackTrace(); }