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 bacaFile BukaFile BacaBarisFileSampaiHabis TutupFile } 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 ;
throws Jika sebuah method dapat menyebabkan sebuah exception namun tidak menangkapnya, maka digunakan keyword throws. Aturan ini hanya berlaku pada checked exception. kata kunci ( ) throws { }