+ All Categories

oop12

Date post: 07-Jun-2015
Category:
Upload: api-3852220
View: 58 times
Download: 4 times
Share this document with a friend
Popular Tags:
35
Exception Handling Pertemuan 12 Pemrograman Berbasis Obyek
Transcript
Page 1: oop12

Exception HandlingPertemuan 12

Pemrograman Berbasis Obyek

Page 2: oop12

Topik

• Kategori Exception• try, catch, finally• Method yang melempar exception• Aturan overriding method dan exception• Membuat class exception baru

Page 3: oop12

Definisi Exception

• Suatu mekanisme penanganan error.• Event yang terjadi ketika program

menemui kesalahan saat instruksiprogram dijalankan.

Page 4: oop12

Exception

• Exception sering digunakan dalam aksessumberdaya non memori.

Catatan:• Exception = untuk menangani kesalahan ringan

(mild error).• Error = menangani kesalahan berat (serious

error).

Page 5: oop12

Contoh kesalahan yang terjadi:

• Pembagian bilangan dengan 0• Pengisian elemen array diluar ukuran array• Kegagalan koneksi database• File yang akan dibuka tidak exist• Operand yg akan dimanipulasi out of prescribed

range• Mengakses obyek yang belum diinisialisasi

Page 6: oop12

Exception categories

Page 7: oop12

Purpose of each exception• Error : mengindikasikan bahwa error yang

terjadi adalah fatal error (severe problem) dimana proses recovery sangat sulitdilakukan bahkan tidak mungkin dilakukan.– Contoh : program running out of memory

• RuntimeException : mengindikasikankesalahan implementasi atau desainprogram. – Contoh : ArrayIndexOutOfBounds

• Other exception : mengindikasikankesalahan environment.– Contoh : file not found, invalid URL exception

Page 8: oop12

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 ukuranarray.

• 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

Page 9: oop12

Apa yang terjadi jika terjadikesalahan?

• Secara otomatis akan dilempar sebuah object yang disebut dgn exception.

• Exception dapat diproses lebih lanjut olehfungsi-fungsi yang siap menangani kesalahan.

• Proses pelemparan exception disebut dgnthrowing exception.

• Proses penerimaan exception disebut dengancatch exception.

Page 10: oop12

Contoh kejadian error (loading file from the disk)

int status = loadTexfile();If (status != 1) {

// something unusual happened, describe itswitch (status) {

case 2:// file not foundbreak;

case 3://disk errorbreak;

case 4://file corruptedbreak;

default:// other error

}} else {

// file loaded OK, continue with program}

Page 11: oop12

Misal terdapat algoritmaprogram:

Fungsi bacaFileBukaFileBacaBarisFileSampaiHabisTutupFile

Page 12: oop12

Ditambahkan program untukpengecekan berhasil tidaknya

pembacaan fileFungsi bacaFile

BukaFileJika Gagal Buka File

Lakukan SesuatuJika Berhasil Buka File

BacaBarisFileSampaiHabisTutupFile

Page 13: oop12

• Bagaimana bila ditambahkan program untukpengecekan terhadap status pembacaan file?

• Bagaimana bila ditambahkan program untukpengecekan terhadap status penutupan file?

• Maka program akan menjadi sangat panjangdan banyak terdapat nested if-else.

Page 14: oop12

Solusi?•Gunakan exception•Bentuk:try {………..

} catch (ExceptionType x) {………..

}

Page 15: oop12

• Blok try : digunakan untuk menempatkankode-kode program java yang mengandung kode program yang mungkinmelemparkan exception.

• Blok catch : digunakan untukmenempatkan kode-kode program java yang digunakan untuk menangani sebuahexception tertentu.

Page 16: oop12

Implementasi 1try {

Fungsi bacaFileBukaFileBacaBarisFileSampaiHabisTutupFile

} catch (KesalahanBukaFile) {// lakukan sesuatu

}

Page 17: oop12

Try dgn banyak catch• Dapat digunakan beberapa blok catch untuk satu blok try.• Exception dalam satu program bisa mengatasi banyak exception.• Contoh implementasi:• Misal dalam satu blok try terdapat kemungkinan terjadi:

– NullPointerException– IndexOutOfBoundsException– ArithmeticException

try {………..

} catch (ExceptionType1 x1) {………..

} catch (ExceptionType2 x2) {………..

}

Page 18: oop12

Implementasi 2try {

Fungsi bacaFileBukaFileBacaBarisFileSampaiHabisTutupFile

} catch (KesalahanBukaFile) {// lakukan sesuatu

} catch (KesalahanAlokasiMemori) {// lakukan sesuatu

} catch (KesalahanTutupFile) {// lakukan sesuatu

}

Page 19: oop12

Object Exception

• Object exception yang dihasilkan dapatdimanfaatkan untuk mengetahui lebihlanjut mengenai error atau exception yang terjadi.

• Exception merupakan subclass dari class Throwable.

Page 20: oop12

Method yang diwarisi olehexception:

- getMessage()method ini mengembalikan isi pesan untukmenggambarkan exception yang terjadi

– printStackTrace()method ini menampilkan pesan error dan stack trace ke standard error output stream yang biasanyamerupakan konsol window apabila program merupakan program konsol.

– printStackTrace(PrintStream s)method ini mengembalikan pesan error ke objekPrintStream yang dijadikan parameter. Apabila inginmenampilkan pesan ke konsol, anda dapatmenggunakan ystem.out sebagai parameter.

Page 21: oop12

Blok try – catch bertingkattry {

try {………..

} catch (Exception x) {………..

}

try {………..

} catch (Exception x) {………..

}

} catch (Exception x) {………..

}

Page 22: oop12

Blok Try – Catch - Finally• Blok finally : digunakan untuk mendefinisikan

kode program yang selalu dieksekusi baik adaexception yang terjadi maupun bila tidak terjadiexception sama sekali.

• Bentuk:try {

………..} catch (Exception e) {

………..} finally {

………..}

Page 23: oop12

Contoh: Tanpa Exception Handling

Page 24: oop12

Contoh: Dengan Exception Handling

Page 25: oop12

Mendefinisikan method yang menghasilkan exception

• Method tertentu dlm program mungkin akanmenghasilkan error yang tidak dikenali secaraotomatis oleh Java Virtual Machine.

• Berlaku bagi kategori exception yg bukansubclass dari RunTimeException.

• Contoh: EOFException, MallformedURLException

• Dengan cara membuat method yang dapatmelempar exception.

Page 26: oop12

Contoh method yang mendefinisikan exception

Class methodKu{public Image loadImage(String s)throws EOFException, MalformedURLException {

If(kondisierroryangterjadi)throw new EOFException

}}

Page 27: oop12

Membuat class exception baru

• Sebuah subclass dari exception dapatdibuat sendiri oleh programmer untukmendefinisikan sendiri secara lebih rincitentang exception yang dapat terjadi.

• Class exception baru ini harus merupakansubclass dari java.lang.Exception.

Page 28: oop12

Overriding Method dan Exception

• Overriding method hanya boleh melemparexception yang merupakan subclass dariexeption yang dilempar oleh overriden method atau sama.

• Overriding method boleh mendeklarasikanexception lebih sedikit dari jumlah exception kepunyaan overridden method.

Catatan;• Overriding method =method yang mengoveride.• Overridden method = method yang dioveride.

Page 29: oop12

Contoh 1: Method Overriding

• Class TestB1 ok karena ArithmeticExceptionmerupakan subclass dari RuntimeException.

• Class TestB2 error karena Exception merupakansuperclass dari RuntimeException.

Page 30: oop12

Contoh 2: Method Overriding

• Class TestMultiB1 ok karena FileNotFoundException danUTFDataFormatException merupakan subclass dari IOException

• Dan Arithmetic Exception merupakan subclass dariRuntimeException.

Page 31: oop12

Contoh 3: Method Overriding

• Class TestMultiB2 error karena SQLException atau superclassdari SQLException tidak dideklarasikan pada class TestMultiA.

• TestMultiB2 tidak boleh menambahkan exception baru

Page 32: oop12

Contoh 4: Method Overriding

• Class TestMultiB3 ok karena FileNotFoundException adalahsubclass dari IOException.

• Contoh diatas menunjukkan bahwa overriding method bolehmendeklarasikan exception yang lebih sedikit dari exception kepunyaan overridde method.

Page 33: oop12

Membuat Exception

• Tujuan: mendefinisikan class exception yang lebih spesifik untuk keperluantertentu.

• Untuk membuat class exception barumaka class itu harus merupakan subclass dari class Exception.

Page 34: oop12

Contoh:Membuat class exception baru

class Salah extends exception{public Salah(){}public Salah(String pesan){

super(pesan);}

}

Page 35: oop12

public class TesSalah{public static void main(String [] arg) throws Salah{

Salah s = new Salah(“Salah disengaja ha..ha..”);int i = 0;if (i==0)

throw s1}

}