Do you remember this?

Post on 05-Jan-2016

30 views 1 download

description

Do you remember this?. Strategy Pattern consists of. Strategy Concrete Strategy Context Client. strategy. Do you remember this?. c oncrete strategy. c ontext. Client?. Refer to sample codes. Exception handling. Tim Praktikum PSBO 08/09. Exception. - PowerPoint PPT Presentation

Transcript of Do you remember this?

Do you remember this?

Strategy Concrete Strategy Context Client

Strategy Pattern consists of..

Do you remember this?

context

strategy

concrete strategy

Client?

Refer to sample codes..

EXCEPTION HANDLING

Tim Praktikum PSBO 08/09

Exception

Exception suatu objek yang dibuat pada saat program mengalami suatu kondisi yang tidak wajar (abnormal)

Dalam java, exception dapat dibangkitkan secara otomatis oleh sistem atau secara manual oleh kita sendiri melelui kode yang ditulis.

Kesalahan yang terjadi :

Pembagian bilangan integer 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

Contoh

Pembagian dengan bilangan integer

class DivByZero {

public static void main(String args[]) {

System.out.println(3/0);

System.out.println(“Cetak.”);

}

}

Program akan jalan?

Kalaupun di run akan mendapat pesan

How to handle that?Exception handling using try, catch, finally method.

Try…

Try blok dimana kode program memberitahukan kepada compiler bahwa suatu method akan terjadi exception

Blok try : digunakan untuk menempatkan kode-kode program java yang mengandung kode program yang mungkin melemparkan exception

Contoh

try{

System.out.println(3/0);

System.out.println("Cetak.");

}

Type exception: ArithmeticException

Catch…

Catch merupakan pasangan dari try Ketika try mengetahui tipe exception yang

terjadi catch berfungsi untuk menghandle lemparan kesalahan dari try

contoh

catch(ArithmeticException exc) {

System.out.println("salah coy soale dibagi nol");

}

Catch : Jika kita menangkap exception dengan type exception yang tidak sesuai maka exception handling tidak dapat dijalankan

Contoh Class

public class Exception {

public static void main(String args[]) {

try {

System.out.println(3/0);

System.out.println("Cetak.");

}

catch(ArithmeticException exc) {

System.out.println(“Error : Divided by zero!");

}

catch(ArrayIndexOutOfBoundsException exc2) {

System.out.println("Missing argument.");

}

System.out.println("Setelah Exception.");

}

}

Outputnya :Error : Divided by zero!

Setelah Exception

Contoh Class

public class Exception {

public static void main(String args[]) {

try {

System.out.println(3/0);

System.out.println("Cetak.");

}

catch(ArithmeticException exc) {

System.out.println(“Error : Divided by zero!");

}

catch(ArrayIndexOutOfBoundsException exc2) {

System.out.println("Missing argument.");

}

System.out.println("Setelah Exception.");

}

}

Namun catch bisa di buat lebih dari satu dengan asumsi try akan melempar lebih dari satu exception handling dengan tipe yang berbeda. Contoh :

try {Fungsi bacaFileBukaFileBacaBarisFileSampaiHabisTutupFile

} catch (KesalahanBukaFile) {// lakukan sesuatu

} catch (KesalahanAlokasiMemori) {// lakukan sesuatu

} catch (KesalahanTutupFile) {// lakukan sesuatu

}

Perbedaan exception

yang ditangkap

Finally…

Blok finally : digunakan untuk mendefinisikan kode program yang selalu dieksekusi baik ada exception yang terjadi maupun bila tidak terjadi exception sama sekali.

Bersifat optional

public class FinallyDemo {

public static void main(String[] args){

int i=0;

String[] greetings = {

"hello pagi", "cagur", "test lagi"

};

while (i<4){

try{

System.out.println(greetings[i]);

i++;

}

catch(ArrayIndexOutOfBoundsException e){

System.out.println("indeks value");

i++;

//i=0;

}

finally{

System.out.println("finall");

}

}

}

}

Output :hello pagi -> i=0

finall

Cagur -> i=1

finall

test lagi -> i=2

finall

indeks value -> exception

finall

--------Ketika ada exception atau tidak finall tetap akan keluar.

Output jika I di reset menjadi 0 ??

Diletakkan setelah statement catch Hampir pasti dijalankan

Tidak dijalankan jika program keluar pada blok try

System.exit Biasanya digunakan untuk kode

resource-release Menutup koneksi database Menutup koneksi jaringan

throw

Selain menangkap, java juga mengizinkan seorang user untuk melempar sebuah exception.

Kata kunci throw <exception object>;

throws

Jika sebuah method dapat menyebabkan sebuah exception namun tidak menangkapnya, maka digunakan keyword throws. Aturan ini hanya berlaku pada checked exception.

kata kunci <type> <methodName>

(<parameterList>) throws <exceptionList> {<methodBody>}