OBJECT ORIENTEDPROGAMMINGEXCEPTION HANDLINGDisusun Oleh :Dany TrionoGregorius AirlanggaNovi TasariIgmal TrisnawanJurusan S...
TUJUAN2 Mengerti Exception Handling dan mampumengimplementasikan dalam bahasa pemrogramanJava. Mengerti dan mampu membua...
PENDAHULUAN3 Exception adalah suatu kondisi abnormal yangterjadi pada saat pengeksekusian suatuperintah Karena Java  e ...
Exception4 Ada lima keywords yang digunakan oleh Javauntuk menangani exception ini, yaitu : try catch finally thro w...
Exception5 Secara umum bentuk penggunaannya adalah :1. try {2. /*kode yang mungkin mengakibatkan exception*/3. }4. catch ...
Tipe-tipe Exception6 Semua class exception terdapat dalam packagejava.lang. Superclass tertinggi adalah class Throwable,...
Exception yang tidak dicek7 Semua Exception yang bertipe RuntimeException dan turunannyatidak harus secara explicit ditan...
Exception yang tidak dicek(cont.)8 Program tersebut di atas langsung bisadikompilasi. Hasil eksekusinya (running) :10203...
Exception yang dicek9 Semua tipe exception yang bukan turunan dari classRuntimeException merupakan exception yang “harus”...
Exception yang dicek (cont.)10 Program di atas digunakan untuk membuat sebuah file dengannama te st. txt, namun method cr...
Exception yang dicek (cont.)11 Agar program di atas bisa dikompilasi, maka gunakan blojk try catchseperti contoh berikut ...
Penggunaan Blok try catch12 Walaupun penanganan exception secara default cukupbermanfaat, namun terkadang kita ingin mena...
Penggunaan Blok try catch131. public class DemoException {2. public static void main (String args[]) {3. try {4. int angka...
Penggunaan Blok try catch141. class Coba{2. public void tampil() {3. try {4. int angka[]={10,20};5. for (int i=0;i<=2;i++)...
Penggunaan Blok try catch151. class Coba{2. public void tampil() {3. int angka[]={10,20};4. for (int i=0;i<=2;i++)5. Syste...
Penggunaan lebih dari satucatch16 Kode yang terdapat pada blok try bisa mengakibatkan lebih dari satu exception. Dalam h...
Penggunaan lebih dari satu catch(cont.)17 Pada program di atas, jika nilai x=0 makaoutputnya : Terjadi pembagian nol Pr...
Penggunaan lebih dari satu catch(cont.)18 Dengan demikian terlihat bahwa blok catchyang mana yang dieksekusi oleh Javater...
Penggunaan lebih dari satu catch(cont.)19Contoh (yang benar):1. public class DemoTryCatch2. {3. public static void main(St...
Penggunaan lebih dari satu catch(cont.)20Contoh (yang salah):1. public class DemoTryCatch2. {3. public static void main(St...
Common Exception21 ArithmeticException NullPointerException NegativeArraySizeException ArrayIndexOutOfBoundsException...
Pemakaian throw22 Secara eksplist, kita dapat melempar (thro w)exception dari dalam program denganmenggunakan keyword thr...
Contoh Pemakaian throw231. class Coba {2. public void tampil() {3. try {4. int x=0;5. if (x<5)6. throw new Exception("Lebi...
Contoh Pemakaian throw241. class Coba {2. public void tampil() {3. int angka[]={10,20,30};4. for (int i=0;i<=2;i++) {5. if...
Pemakaian Finally25 Penggunaan blok try catch terkadangmembingungkan karena kita tidak dapatmenentukan dengan pasti alur ...
Pemakaian Finally26Contoh:1. public class DemoFinally2. {3. public static void main(String[] args)4. {5. int x = 3;6. int[...
Pemakaian Finally27 Program di atas menunjukkan bahwa terjadiexception pada baris ke-8, sehinggamenyebabkan program menja...
Pemakaian Finally28Contoh:1. public class DemoFinally2. {3. public static void main(String[] args)4. {5. int x = 3;6. int[...
Pemakaian throws29 Penggunaan keyword ini berhubungan eratdengan penggunaan exception yang dicek olehJava. Setiap method...
Contoh Pemakaian throws301. class Coba {2. public void tampil() throws Exception {3. int x=0;4. if (x<5)5. throw new Excep...
Membuat Exception sendiri311. class MyException extends Exception {2. private int kode;3. public MyException (String msg, ...
Membuat Exception sendiri321. public class DemoException2 {2. public static void main (String args[]) {3. TestA a = new Te...
Upcoming SlideShare
Loading in …5
×

Exception Handling

1,634 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,634
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
153
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Exception Handling

  1. 1. OBJECT ORIENTEDPROGAMMINGEXCEPTION HANDLINGDisusun Oleh :Dany TrionoGregorius AirlanggaNovi TasariIgmal TrisnawanJurusan Sistem Informatika – STIKOM YOS SUDARSOPurwokerto
  2. 2. TUJUAN2 Mengerti Exception Handling dan mampumengimplementasikan dalam bahasa pemrogramanJava. Mengerti dan mampu membuat kelas exception
  3. 3. PENDAHULUAN3 Exception adalah suatu kondisi abnormal yangterjadi pada saat pengeksekusian suatuperintah Karena Java  e ve rything is o bje ct, makaexception juga direpresentasikan oleh sebuahobject. Pada saat terjadi exception, ada 2 pilihan yangdapat dilakukan : Menangani sendiri exception tersebut Meneruskannya ke luar dengan cara membuat objectyang menjelaskan exception tersebut danmelemparkannya (thro w) ke luar agar ditangani olehkode yang memanggil method tsb.
  4. 4. Exception4 Ada lima keywords yang digunakan oleh Javauntuk menangani exception ini, yaitu : try catch finally thro w thro ws Secara umum bentuk penggunaannyaadalah :
  5. 5. Exception5 Secara umum bentuk penggunaannya adalah :1. try {2. /*kode yang mungkin mengakibatkan exception*/3. }4. catch (TipeException1 objectException){5. /*kode untuk menangani exception yang cocok dengan6. TipeException1 */7. }8. catch (TipeException2 objectException){9. /*kode untuk menangani exception yang cocok dengan10. TipeException2 */11. }12. finally {13. /*kode yang pasti akan dieksekusi setelah blok try catch di14. atas dieksekusi*/15. }
  6. 6. Tipe-tipe Exception6 Semua class exception terdapat dalam packagejava.lang. Superclass tertinggi adalah class Throwable, tetapi kitahampir tidak pernah menggunakan class ini secaralangsung Class Error  tipe exception yang seharusnya tidakditangani dengan menggunakan blok try catch karenaberhubungan dengan Java run-time system/evironment.Jadi exception yang terjadi kemungkinannya sangatkristis yang sebaiknya tidak ditangani oleh program kitasendiri. Class Exception  tipe exception yang sebaiknyaditangani oleh program kita secara langsung. Dalam penggunaannya, kita akan banyak menangani exceptionyg merupakan turunan dari class Exception ini. Salah satuturunannya yang perlu diperhatikan adalah classRuntimeException,karena Java memperlakukan class ini &
  7. 7. Exception yang tidak dicek7 Semua Exception yang bertipe RuntimeException dan turunannyatidak harus secara explicit ditangani dalam program kita. Salah satu contoh tipe exception ini ; ArrayInde xO utO fBo undsExce ptio n Contoh :1. public class DemoException {2. public static void main (String args[]) {3. int angka[]={10,20,30};4. for (int i=0;i<=3;i++) {5. System.out.println(angka[i]);6. }7. System.out.println("Program Selesai");8. }9. };
  8. 8. Exception yang tidak dicek(cont.)8 Program tersebut di atas langsung bisadikompilasi. Hasil eksekusinya (running) :102030java.lang.ArrayIndexOutOfBoundsException: 3at DemoException.main(DemoException.java:5)Exception in thread "main" Normal Termination Exception di atas terjadi karena programmencoba mengakses nilai dari array yangterdapat pada indeks di luar kapasitas array itusendiri
  9. 9. Exception yang dicek9 Semua tipe exception yang bukan turunan dari classRuntimeException merupakan exception yang “harus” ditanganimenggunakan blok try catch. Java bahkan tidak mengijinkan kita mengkompilasi program yangkita buat, jika tidak menangani exception tersebut. Contoh :1. import java.io.*;2. public class DemoFileException {3. public static void main(String[] args) {4. File test = new File(“d:test.txt");5. test.createNewFile();6. }7. }
  10. 10. Exception yang dicek (cont.)10 Program di atas digunakan untuk membuat sebuah file dengannama te st. txt, namun method cre ate Ne wFile () pada class File dapatmengakibatkan exception yang bertipe java.io.IOException yangbukan turunan dari class RuntimeException Jika program di atas dikompilasi maka akan memunculkan pesan :DemoFileException.java:6: unreported exceptionjava.io.IOException; must be caught or declared to bethrowntest.createNewFile();^1 error Exception ini harus ditangani dengan blok try catch.
  11. 11. Exception yang dicek (cont.)11 Agar program di atas bisa dikompilasi, maka gunakan blojk try catchseperti contoh berikut :1. import java.io.*;2. public class DemoFileException {3. public static void main(String[] args) {4. try {5. File test = new File(“d:test.txt");6. test.createNewFile();7. }8. catch (IOException e) {9. System.out.println(“Terjadi Exception”);10. System.out.println(e);11. }System.out.println(“Program Selesai”);1. }2. }
  12. 12. Penggunaan Blok try catch12 Walaupun penanganan exception secara default cukupbermanfaat, namun terkadang kita ingin menanganiexception tersebut dengan cara yang berbeda. Ada beberapa alasan mengapa kita ingin melakukanini : Kita ingin program kita memperbaiki kesalahan akibat exception& terus melanjutkan eksekusi seolah-olah tidak pernah terjadiexception Kita ingin program terus berjalan dan bukannya dihentikan padasaat exception terjadi. User umumnya tidak mengerti dengan pesan kesalahan yangdimunculkan, apalagi beserta stack tracenya sehingga kurangbermanfaat untuk user. Jadi kita mungkin ingin mengganti pesantersebut menjadi pesan yang lebih mudah dimengerti.
  13. 13. Penggunaan Blok try catch131. public class DemoException {2. public static void main (String args[]) {3. try {4. int angka[]={10,20,30};5. for (int i=0;i<=3;i++) {6. System.out.println(angka[i]);7. }8. System.out.println("Baris ini tidak dieksekusi");9. }10. catch (ArrayIndexOutOfBoundsException e) {11. System.out.println("Terjadi Exception");12. }13. System.out.println("Program Selesai");14. }15. };OUTPUT :102030Terjadi ExceptionProgramSelesaiAtau Programdi atas bisa juga ditulis dalambentuk, seperti di bawah ini :
  14. 14. Penggunaan Blok try catch141. class Coba{2. public void tampil() {3. try {4. int angka[]={10,20};5. for (int i=0;i<=2;i++)6. System.out.println(angka[i]);7. System.out.println("Baris ini tidak dieksekusi");8. }9. catch (ArrayIndexOutOfBoundsException e) {10. System.out.println("Terjadi Exception");11. }12. }13. };14. public class DemoException {15. public static void main (String args[]) {16. Coba c = new Coba();17. c.tampil();18. System.out.println("Program Selesai");19. }20. };
  15. 15. Penggunaan Blok try catch151. class Coba{2. public void tampil() {3. int angka[]={10,20};4. for (int i=0;i<=2;i++)5. System.out.println(angka[i]);6. }7. };8. public class DemoException {9. public static void main (String args[]) {10. Coba c = new Coba();11. try {12. c.tampil();13. System.out.println("Baris ini tidak dieksekusi");14. }15. catch (ArrayIndexOutOfBoundsException e) {16. System.out.println("Terjadi Exception");17. }18. System.out.println("Program Selesai");19. }20. };
  16. 16. Penggunaan lebih dari satucatch16 Kode yang terdapat pada blok try bisa mengakibatkan lebih dari satu exception. Dalam hal ini, kita dapat menuliskan lebih dari blok catch untuk setiap blok try. Contoh :1. public class DemoTryCatch2. {3. public static void main(String[] args)4. {5. try {6. int x = 0;7. int y = 100/x;8. int[] arr = {10,11};9. y = arr[x];10. System.out.println("Tidak terjadi Exception");11. }12. catch (ArithmeticException e) {13. System.out.println("Terjadi pembagian nol");14. }15. catch (ArrayIndexOutOfBoundsException e) {16. System.out.println("Index di luar kapasitas array");17. }18. System.out.println("Program Selesai");19. }20. }
  17. 17. Penggunaan lebih dari satu catch(cont.)17 Pada program di atas, jika nilai x=0 makaoutputnya : Terjadi pembagian nol Program Selesai Jika nilai x=1, maka outputnya : Tidak terjadi Exception Program Selesai Jika nilai x=2, maka outputnya : Index di luar kapasitas array Program Selesai
  18. 18. Penggunaan lebih dari satu catch(cont.)18 Dengan demikian terlihat bahwa blok catchyang mana yang dieksekusi oleh Javatergantung pada exception yang terjadi. Dalam menggunakan lebih dari satu blokcatch, perlu diperhatikan bahwa blok catchdengan tipe data subclass harus ditulisterlebih dahulu baru diikuti dengan blok catchdengan tipe data superclass.
  19. 19. Penggunaan lebih dari satu catch(cont.)19Contoh (yang benar):1. public class DemoTryCatch2. {3. public static void main(String[] args)4. {5. try {6. int x = 2;7. int y = 100/x;8. int[] arr = {10,11};9. y = arr[x];10. System.out.println("Tidak terjadi Exception");11. }12. catch (ArithmeticException e) {13. System.out.println("Terjadi pembagian nol");14. }15. catch (ArrayIndexOutOfBoundsException e) {16. System.out.println("Index di luar kapasitas array");17. }18. catch (Exception e) {19. System.out.println("Exception yang tidak diketahui");20. }21. System.out.println("Program Selesai");22. }23. }
  20. 20. Penggunaan lebih dari satu catch(cont.)20Contoh (yang salah):1. public class DemoTryCatch2. {3. public static void main(String[] args)4. {5. try {6. int x = 2;7. int y = 100/x;8. int[] arr = {10,11};9. y = arr[x];10. System.out.println("Tidak terjadi Exception");11. }12. catch (Exception e) {13. System.out.println("Exception yang tidak diketahui");14. }15. catch (ArithmeticException e) {16. System.out.println("Terjadi pembagian nol");17. }18. catch (ArrayIndexOutOfBoundsException e) {19. System.out.println("Index di luar kapasitas array");20. }21. System.out.println("Program Selesai");22. }23. }
  21. 21. Common Exception21 ArithmeticException NullPointerException NegativeArraySizeException ArrayIndexOutOfBoundsException SecurityException
  22. 22. Pemakaian throw22 Secara eksplist, kita dapat melempar (thro w)exception dari dalam program denganmenggunakan keyword throw. Secara umumpenggunaannya adalah :throw ExceptionObject ExceptionObject adalah adalah object-object instan dari class yang merupakanturunan dari class Throwable.
  23. 23. Contoh Pemakaian throw231. class Coba {2. public void tampil() {3. try {4. int x=0;5. if (x<5)6. throw new Exception("Lebih kecil 5");7. }8. catch (Exception e) {9. System.out.println(e.getMessage());10. }11. }12. };13. public class DemoException {14. public static void main (String args[]) {15. Coba c = new Coba();16. c.tampil();17. System.out.println("Program Selesai");18. }19. };
  24. 24. Contoh Pemakaian throw241. class Coba {2. public void tampil() {3. int angka[]={10,20,30};4. for (int i=0;i<=2;i++) {5. if (i>=2)6. throw new ArrayIndexOutOfBoundsException("SalahArray");1. else2. System.out.println(angka[i]);3. }4. }5. };6. public class DemoException {7. public static void main (String args[]) {8. Coba c = new Coba();9. c.tampil();10. System.out.println("Program Selesai");11. }12. };
  25. 25. Pemakaian Finally25 Penggunaan blok try catch terkadangmembingungkan karena kita tidak dapatmenentukan dengan pasti alur mana yang akandieksekusi. Apalagi penggunaan throw yangmengakibatkan kode setelah throw tidak akandieksekusi atau justru terjadi kesalahan padablok catch, menyebabkan program akanberhenti. Untuk mengatasi problem ini, Javamemperkenalkan keyword finally. Dimanasemua kode yang ada dalam blok finally “pasti”akan dieksekusi apapun yang terjadi di dalamblok try catch.
  26. 26. Pemakaian Finally26Contoh:1. public class DemoFinally2. {3. public static void main(String[] args)4. {5. int x = 3;6. int[] arr = {10,11,12};7. try {8. System.out.println(arr[x]);9. System.out.println("Tidak Terjadi Eksepsi");10. }11. catch (ArrayIndexOutOfBoundsException e) {12. System.out.println("Terjadi Eksepsi");13. System.out.println(arr[x-4]);14. }15. System.out.println("Program Selesai");16. }17. }
  27. 27. Pemakaian Finally27 Program di atas menunjukkan bahwa terjadiexception pada baris ke-8, sehinggamenyebabkan program menjalan kode yang adadalam blok catch. Tetapi dalam blok catch pun terjadi exception,sehingga program akan berhenti, sehingga kodepada baris ke-15, tidak akan dijalankan.Bagaimana seandainya kode pada baris ke-15itu adalah hal yang sangat penting? Solusinya : Gunakan finally
  28. 28. Pemakaian Finally28Contoh:1. public class DemoFinally2. {3. public static void main(String[] args)4. {5. int x = 3;6. int[] arr = {10,11,12};7. try {8. System.out.println(arr[x]);9. System.out.println("Tidak Terjadi Eksepsi");10. }11. catch (ArrayIndexOutOfBoundsException e) {12. System.out.println("Terjadi Eksepsi");13. System.out.println(arr[x-4]);14. }15. finally {16. System.out.println("Program Selesai");17. }18. }19. }
  29. 29. Pemakaian throws29 Penggunaan keyword ini berhubungan eratdengan penggunaan exception yang dicek olehJava. Setiap method yang mungkin menyebabkansuatu exception & tidak menangani exceptiontsb, dalam arti exception tsb akan dilempar keluar, maka method tsb harus menjelaskankemungkinan ini agar si pemanggil method inidapat mengetahui & bersiap-siap untukmenangani exception yg mungkin terjadi. Ini dilakukan dengan cara menggunakankeyword throws pada saat pendeklarasianmethod.
  30. 30. Contoh Pemakaian throws301. class Coba {2. public void tampil() throws Exception {3. int x=0;4. if (x<5)5. throw new Exception("Lebih kecil 5");6. }7. };8. public class DemoException {9. public static void main (String args[]) {10. Coba c = new Coba();11. try {12. c.tampil();13. }14. catch (Exception e) {15. System.out.println(e.getMessage());16. }17. System.out.println("Program Selesai");18. }19. };
  31. 31. Membuat Exception sendiri311. class MyException extends Exception {2. private int kode;3. public MyException (String msg, int kd) {4. super(msg);5. kode = kd;6. }7. public int getKode() {8. return kode;9. }10. };11. class TestA {12. public void tampil() throws MyException {13. int angka[]={10,20,30};14. for (int i=0;i<=10;i++) {15. if (i>=3)16. throw new MyException("Program Salah",99);17. else18. System.out.println(angka[i]);19. }20. }21. };
  32. 32. Membuat Exception sendiri321. public class DemoException2 {2. public static void main (String args[]) {3. TestA a = new TestA();4. try {5. a.tampil();6. }7. catch (MyException e) {8. System.out.println("Pesan : " +e.getMessage());9. System.out.println("Kode : " +e.getKode());10. }11. System.out.println("Program Selesai");12. }13. };

×