Exception. Oleh: Mike Yuliana PENS-ITS

dokumen-dokumen yang mirip
Topik. Penanganan Eksepsi. Menangkap Eksepsi. Catch Secara bertingkat. Melontarkan Eksepsi. Melontarkan kembali Eksepsi.

Tujuan Intruksional. Mampu menjelaskan tentang event handling Mampu menjelaskan tentang method Mampu menggunakan event handling Mampu membuat method

Sesi 8. Event Handling & Exception Handling. Tujuan Intruksional

PRAKTIKUM 6 EXCEPTION

Percobaan 6 Exception

PERCOBAAN 6 EXCEPTION

Penanganan Kesalahan

03/04/2018. Pemrograman Berorientasi Object

PRAKTIKUM 17 MENANGANI EXCEPTION

Pemrograman Berorientasi Obyek. Exception Handling. Politeknik Elektronika Negeri Surabaya

Exception Handling. Topik

MODUL 9 EXCEPTION HANDLING

Pemrograman Berbasis Objek. Exception Handling. Politeknik Elektronika Negeri Surabaya

Modul 4 Exception, I/O, dan Operasi File

A. TUJUAN PEMBELAJARAN 1. Mengetahui cara menangani exception dengan cara melempar exception. 2. Mengetahui cara membuat sendiri class exception.

Pemrograman Berorientasi Object

IF PEMROGRAMAN LANJUT EXCEPTION. Oleh : Andri Heryandi, M.T.

Definisi Eksepsi (exception)

Exception Handling. Oleh : Agus Priyanto, M.Kom

Penjebakan Eksepsi. Nur hasanah, M.Cs

Variabel tersebut seharusnya bisa dideklarasikan didalam try block dan block catch

Waktu Sisa : 0:43:4. Sukses. Kesalahan pada URL. File tidak lengkap. Kesalahan umum. Mengerjakan finally. Diluar block

Exception Handling. Prepared by Viska Mutiawani. 1

EXCEPTION. 2. Pada kondisi bagaimana klausa finally tidak akan dieksekusi? Kode didalam block try memiliki statement return

public class Test { int i = 6; int j = 3; System.out.println(i/j); } Output :

PEMOGRAMAN JAVA. Yoannita. Tipe Data (ii) : Array Exception Handling

Praktikum 9 Exception Handling

Tidak ada satupun dari pilihan di atas yang benar karena checked exception tidak bisa ditulis

1. Apa yang harus dilakukan oleh programmer untuk menangani user-defined exception? Menuliskan exception sebagai start method

Sukses. Kesalahan pada URL. File tidak lengkap. Kesalahan umum

Exception adalah penanda bahwa kondisi/kejadian yang tidak diinginkan telah terjadi pada program kita. Ada 2 jenis exception (+1 Error):

Pemograman Java. Yoannita, S.Kom. Argumen Command Line Exception Handling Package

PEMROGRAMAN JAVA : EXCEPTION

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

MODUL 7 - EXCEPTION HANDLING

EXCEPTION HANDLING. Bug : kesalahan yang merupakan kelemahan dari perancangan atau implementasi

Praktikum Exception Handling

PERTEMUAN 3 OBJEK DAN CLASS

IKG2I4 / Software Project I

//PROGRAM 9-8. int[] A = new int[5]; // SALAH, karena tidak terdapat. class BanyakEksepsi { indeks ke-5. public static void test(int a, int b) { try {

1.Tujuan. 2. Latar Belakang

Exception Handling Lanjutan

Menangkap Kesalahan (Error Handling)

PRAKTIKUM I EXCEPTION HANDLING

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN 2

PRAKTIKUM PEMROGRAMAN OBJEK DENGAN JAVA MODUL KE-5 EXCEPTION HANDLING

2. Pilih instruksi yang dapat digunakan dalam method actionperformed untuk membedakan antara tombol buttonone dan buttontwo.

BAB Tujuan. 2.2 Apa itu Exception? Pendahuluan Error dan Exception Classes

Paket dan Interface. 15 th week Estu Sinduningrum ST,MT

Bahasa Pemrograman 2.

Abstract Class dan Interface. Viska Mutiawani, M.Sc

4/11/2013. Topik. Exceptions dan Assertions Pengenalan Pemrograman 2. Topik. Topik EXCEPTIONS. Class Error dan Exception

Pemrograman Lanjut Exception Handling PTIIK

EXCEPTION HANDLING. 1. Mampu menangani eksepsi 2. Mengetahui dan memahami tentang multithreading 3. Dapat membuat program tentang exception handling

OPERASI FILE & EXCEPTION HANDLING. Herman Tolle

Topik. Stream I/O Cara menggunakan Stream Hierarchy Java I/O Membaca File Menulis File Menghapus File Cara membaca isi Direktori dalam file

Array Multidimensi. Pemrograman Dasar. Java

Exception Handling and Multithreading

PENANGANAN EKSEPSI. class Exc0 { public static void main (String args[]) { int d = 0; int a = 42 / d; } }

Pemrograman Berorientasi. Exception Handling

Array Sebagai Parameter Method

Pertemuan 4 Array pada Java

BAB 4 ARRAY. number1 = 10; number2 = 20; number3 = 30;

PRAKTIKUM 8 FILE INPUT OUTPUT

2 TIPE DATA DAN VARIABEL

PEMROGRAMAN JAVA. Yoannita, S.Kom. Input Kondisi (IF-ELSE, SWITCH)

Input Nilai tanpa Case String di Java

PEMROGRAMAN JAVA. Petunjuk Penulisan Program Token Aturan Penamaan Identifier Lingkungan /Scope dari variabel Tipe Data (i) Yoannita

MODUL VIII Exception, I/O, dan Operasi File

SUMBER BELAJAR PENUNJANG PLPG

BAB II VARIABEL DAN TIPE DATA

Paket dan Interface. 15 th week Estu Sinduningrum ST,MT

Cara Membaca File Text di JAVA

PEMAHAMAN DASAR DASAR JAVA

Modul Praktikum 4 Pemograman Berorientasi Objek

Pertemuan 2 Struktur Kontrol Percabangan

PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN

Modul Praktikum Pemrograman

MODUL III ARRAYLIST TUGAS PENDAHULUAN

PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA

TPI4202 e-tp.ub.ac.id. Lecture 4 Mas ud Effendi

Bahasa Pemrograman :: Dasar Pemrograman Java

BAB VI ARRAY Mendeklarasikan Variabel Array int[ ] bilangan; int bilangan[ ]; Mendefinisikan Array Bilangan = new int[5]; Latihan 21. ArrSatu.

Variabel dengan tipe dasar hanya dapat menyimpan sebuah nilai

IT652 Pemrograman Berorientasi Aspek. Ramos Somya

I/O (Input dan Output)

Algoritma Pemrograman 1

BAB 5 Mendapatkan Input dari Keyboard

BAB 5 Mendapatkan Input dari Keyboard

Array. Pengantar. int a, b, c, d, e;

BAB 2 INPUT DARI KEYBOARD

Pertemuan 3 Struktur Perulangan pada Java

Pemrograman Berorientasi Obyek (IT251) Ramos Somya, S.Kom., M.Cs.

PEMROGRAMAN SOCKET LANJUTAN

Pemrograman Berorientasi. Class dan Obyek 2

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA FAKULTAS ILMU KOMPUTER UNIVERSITAS BRAWIJAYA

Masukkan connector tersebut ke dalam direktori pada tempat jdk di-instal dengan path

Modul Praktikum Bahasa Pemrograman 1

STREAM DAN FILE. PipedInputStream, SequenceInputStream, dan StringBufferInputStream.

1. Mana diantara pilihan-pilihan berikut ini yang merupakan penulisan loop yang benar?

Transkripsi:

Exception Oleh: Mike Yuliana PENS-ITS

Topik Penanganan Eksepsi Menangkap Eksepsi Catch Secara bertingkat Melontarkan Eksepsi Melontarkan kembali Eksepsi Klausa Throws

Eksepsi Suatu kondisi yang terjadi ketika program menemui kesalahan saat instruksi program dijalankan. 2 pilihan yang bisa dilakukan: Menangani sendiri eksepsi tersebut Meneruskannya ke luar dengan cara membuat objek yang menjelaskan eksepsi tersebut dan melemparkannya(throw) keluar agar ditangani oleh code yang memanggil method tersebut

Contoh kesalahan yang terjadi: Pembagian bilangan dengan 0 Pengisian elemen array diluar ukuran array Kegagalan koneksi database File yang akan dibuka tidak exist

Tipe-Tipe Eksepsi

Tujuan masing-masing eksepsi Error : mengindikasikan bahwa error yang terjadi adalah fatal error (severe problem) dimana proses recovery sangat sulit dilakukan bahkan tidak mungkin dilakukan. Contoh : program running out of memory RuntimeException : mengindikasikan kesalahan implementasi atau desain program. Contoh : ArrayIndexOutOfBounds d Other exception : mengindikasikan kesalahan environment. Contoh : file not found, invalid URL exception

Common Exception ArithmeticException Hasil dari operasi divide-by-zero pada integer Misal : int i = 12/0; NullPointerException Mencoba mengakses atribut atau method suatu object padahal object belum dibuat. Misal : Date d = null; System.out.println(d.toString()); NegativeArraySizeException Mencoba membuat array dengan ukuran negatif. ArrayIndexOutOfBoundsException Mencoba mengakses elemen array dimana index nya melebihi ukuran array. SecurityException Biasanya dilempar ke browser, class security manager melempar exception untuk applet yang mencoba melakukan: Mengakses lokal file Open socket ke host yg berbeda dgn host yg di open oleh applet

Eksepsi yang Tidak Dicek Semua eksepsi yang bertipe RuntimeException dan turunannya tidak harus secara eksplisit ditangani dalam program Contoh program class DemoEksepsi public static void main(string args[ ]) int[ ] arr=new int[1]; System.out.println(arr[1]); Hasil eksekusi:

Eksepsi yang Tidak Dicek Contoh program: public class BagiNol public static void main(string args[]) System.out.println("sebelum pembagian"); System.out.println(5/0); System.out.println("sesudah pembagian"); Hasil eksekusi:

Penanganan Eksepsi Beberapa keyword yang dipergunakan untuk menangani eksepsi antara lain try, catch, catch bertingkat. Try /* code yang mungkin mengakibatkan eksepsi*/ Catch(TipeEksepsi1 objekeksepsi) /*code untuk menangani eksepsi yang cocok dengan tipeeksepsi1*/ /.. Catch(tipe EksepsiN objekeksepsi) /* code untuk menangani eksepsi yang cocok dengan tipeeksepsin*/

Penggunaan Blok try catch class demoeksepsiok public static void main(string args[]) try int[] arr=new int[1]; System.out.println(arr[1]); System.out.println("baris ini tidak akan pernah dieksekusi"); catch(arrayindexoutofboundsexception e) System.out.println("terjadi eksepsi karena indeks di luar kapasitas array"); System.out.println("setelah l blok try catch"); Hasil eksekusi:

Penggunaan Blok try catch public class BagiNolok public static void main(string args[]) System.out.println("sebelum pembagian"); try System.out.println(5/0); catch(arithmeticexception e) System.out.println("Terjadi eksepsi karena pembagian dengan nol"); System.out.println("sesudah pembagian"); Hasil eksekusi:

Bentuk kedua pernyataan try berupa: try // blok yang akan ditangkap sekiranya terjadi eksepsi Finally // blok yang akan dijalankan terakhir kali Bagian finally akan dijalankan, tak tergantung apakah bagian blok try Mengalami eksepsi atau tidak

Contoh: public class public static void main(string args[]) double bilangan=100.0; System.out.println( sebelum pembagian ); for(int i=5;i>=0;i--) try System.out.println(bilangan+ / +i+ = ); System.out.println(bilangan/i); finally System.out.println( bagian finally dijalankan ); System.out.println( selesai );

tampilan: Sebelum pembagian 100.0/5=20.0 Bagian finally dijalankan 100.0/4=25.00/4 0 Bagian finally dijalankan 100.0/3=33.33333333 Bagian finally dijalankan 100.0/2=50.0 Bagian finally dijalankan 100.0/1=100.0 0/ 0 Bagian finally dijalankan 100.0/0=infinity Bagian finally dijalankan selesai

Catch Secara Bertingkat t try //blok yang ditangkap sekiranya terjadi eksepsi catch(runtime Exception e) //blok yang akan dijalankan kalau terjadi eksepsi RuntimeError catch(exception ti e) //blok yang akan dijalankan kalau terjadi eksepsi Exception Catch(Throwable e) //blok yang akan dijalankan kalau terjadi eksepsi lain

public class BagiNoloktingkat public static void main(string args[]) System.out.println("sebelum pembagian"); try System.out.println(5/0); catch(runtimeexception e) System.out.println("RuntimeException"); catch(exception e) System.out.println("Exception"); catch(throwable e) System.out.println("Throwable"); System.out.println("sesudah pembagian");

Melontarkan Eksepsi Bentuk pernyataan: throw variabel objek Variabel objek menyatakan variabel objek yang merujuk ke suatu kelas Eksepsi.

public class efekthrow public static void main(string args[]) RuntimeException r; r=new RuntimeException( Eksepsi RuntimeException ); System.out.println( sebelum throw ); throw(r); Hasil Eksekusi: sebelum throw Exception in thread main java.lang.runtimeexception: Eksepsi RuntimeException at efekthrow.main(efekthrow.java:12)

Melontarkan Kembali Eksepsi Adakalanya dalam suatu program, kita perlu melontarkan Eksepsi kembali. Kegunaannya antara lain memungkinkan metode lain untuk menangkap eksepsi tersebut. public class efekthrow2 public static void main(string args[]) int[] larik=new int[10]; try larik[50]=77 //penyebab eksepsi catch(arrayindexoutofboundsexception a) a=new ArrayIndexOutOfBoundsException( harus berkisar antara 0 sampai dengan 9 ); throw(a);

Hasil Eksekusi:

Klausa throws klausa throws berfungsi untuk memberitahukan bahwa suatu metode ada kemungkinan menghasilkan eksepsi. Bentuk throws: public tipe1 namametode(tipe2 x,tipe3 y) throws jeniseksepsi

import java.io.*; class coba public void metodea() System.out.println( metode A ); public void metodeb()throws IOException System.out.println( metode t tl t B ); public class efekthrow public static void main(string args[]) coba obj=new coba(); obj.metodea(); obj.metodeb(); Error!! Harusnya try obj.metodeb(); catch(ioexception i)

Hasil Eksekusi: