Do you remember this?
description
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>}