240 likes | 356 Views
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.
E N D
Strategy Pattern consists of.. Strategy Concrete Strategy Context Client
strategy Do you remember this? concrete strategy context Client?
Exception handling Tim Praktikum PSBO 08/09
Exception • Exception suatuobjek yang dibuatpadasaat program mengalamisuatukondisi yang tidakwajar (abnormal) • Dalamjava, exception dapatdibangkitkansecaraotomatisolehsistematausecara manual olehkitasendirimeleluikode yang ditulis.
Kesalahanyang terjadi : • Pembagianbilangan integer dengan 0 • Pengisianelemen array diluarukuran array • Kegagalankoneksi database • File yang akandibukatidak exist • Operand ygakandimanipulasi out of prescribed range • Mengaksesobyek yang belumdiinisialisasi
Contoh • Pembagiandenganbilangan integer class DivByZero { public static void main(String args[]) { System.out.println(3/0); System.out.println(“Cetak.”); } } Program akanjalan?
Kalaupundi run akanmendapatpesan • How to handle that? Exception handling using try, catch, finally method.
Try… • Try blokdimanakode program memberitahukankepadacompiler bahwasuatu method akanterjadiexception • Blok try : digunakanuntukmenempatkankode-kode program java yang mengandungkode program yang mungkinmelemparkan exception
Contoh try{ System.out.println(3/0); System.out.println("Cetak."); } • Type exception: ArithmeticException
Catch… • Catch merupakanpasangandari try • Ketika try mengetahuitipe exception yang terjadi catch berfungsiuntukmenghandlelemparankesalahandari try
contoh catch(ArithmeticExceptionexc) { System.out.println("salah coy soaledibaginol"); } • Catch : Jikakitamenangkap exception dengan type exception yang tidaksesuaimaka exception handling tidakdapatdijalankan
Contoh Class public class Exception { public static void main(String args[]) { try{ System.out.println(3/0); System.out.println("Cetak."); } catch(ArithmeticExceptionexc) { System.out.println(“Error : Divided by zero!"); } catch(ArrayIndexOutOfBoundsExceptionexc2) { 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(ArithmeticExceptionexc) { System.out.println(“Error : Divided by zero!"); } catch(ArrayIndexOutOfBoundsExceptionexc2) { System.out.println("Missing argument."); } System.out.println("Setelah Exception."); } }
Namun catch bisadibuatlebihdarisatudenganasumsi try akanmelemparlebihdarisatu exception handling dengantipe yang berbeda. Contoh :
try { FungsibacaFile BukaFile BacaBarisFileSampaiHabis TutupFile } catch (KesalahanBukaFile) { // lakukansesuatu } catch (KesalahanAlokasiMemori) { // lakukansesuatu } catch (KesalahanTutupFile) { // lakukansesuatu } Perbedaan exception yang ditangkap
Finally… • Blok finally : digunakanuntukmendefinisikankode program yang selaludieksekusibaikada exception yang terjadimaupunbilatidakterjadi exception samasekali. • Bersifat optional
public class FinallyDemo { public static void main(String[] args){ inti=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 --------Ketikaada exception atautidakfinalltetapakankeluar. • Output jika I di reset menjadi 0 ??
Diletakkansetelah statement catch • Hampirpastidijalankan • Tidakdijalankanjika program keluarpadablok try • System.exit • Biasanyadigunakanuntukkode resource-release • Menutupkoneksi database • Menutupkoneksijaringan
throw • Selainmenangkap, java jugamengizinkanseorang user untukmelemparsebuah exception. • Katakunci • throw <exception object>;
throws • Jikasebuah method dapatmenyebabkansebuah exception namuntidakmenangkapnya, makadigunakan keyword throws. Aturaninihanyaberlakupadachecked exception. • katakunci • <type> <methodName> (<parameterList>) throws <exceptionList> { <methodBody> }