SlideShare une entreprise Scribd logo
1  sur  32
OBJECT ORIENTED
PROGAMMING
EXCEPTION HANDLING
Disusun Oleh :
Dany Triono
Gregorius Airlangga
Novi Tasari
Igmal Trisnawan
Jurusan Sistem Informatika – STIKOM YOS SUDARSO
Purwokerto
TUJUAN
2
 Mengerti Exception Handling dan mampu
mengimplementasikan dalam bahasa pemrograman
Java.
 Mengerti dan mampu membuat kelas exception
PENDAHULUAN
3
 Exception adalah suatu kondisi abnormal yang
terjadi pada saat pengeksekusian suatu
perintah
 Karena Java  e ve rything is o bje ct, maka
exception juga direpresentasikan oleh sebuah
object.
 Pada saat terjadi exception, ada 2 pilihan yang
dapat dilakukan :
 Menangani sendiri exception tersebut
 Meneruskannya ke luar dengan cara membuat object
yang menjelaskan exception tersebut dan
melemparkannya (thro w) ke luar agar ditangani oleh
kode yang memanggil method tsb.
Exception
4
 Ada lima keywords yang digunakan oleh Java
untuk menangani exception ini, yaitu :
 try
 catch
 finally
 thro w
 thro ws
 Secara umum bentuk penggunaannya
adalah :
Exception
5
 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 dengan
6. TipeException1 */
7. }
8. catch (TipeException2 objectException){
9. /*kode untuk menangani exception yang cocok dengan
10. TipeException2 */
11. }
12. finally {
13. /*kode yang pasti akan dieksekusi setelah blok try catch di
14. atas dieksekusi*/
15. }
Tipe-tipe Exception
6
 Semua class exception terdapat dalam package
java.lang.
 Superclass tertinggi adalah class Throwable, tetapi kita
hampir tidak pernah menggunakan class ini secara
langsung
 Class Error  tipe exception yang seharusnya tidak
ditangani dengan menggunakan blok try catch karena
berhubungan dengan Java run-time system/evironment.
Jadi exception yang terjadi kemungkinannya sangat
kristis yang sebaiknya tidak ditangani oleh program kita
sendiri.
 Class Exception  tipe exception yang sebaiknya
ditangani oleh program kita secara langsung.
 Dalam penggunaannya, kita akan banyak menangani exception
yg merupakan turunan dari class Exception ini. Salah satu
turunannya yang perlu diperhatikan adalah class
RuntimeException,karena Java memperlakukan class ini &
Exception yang tidak dicek
7
 Semua Exception yang bertipe RuntimeException dan turunannya
tidak 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. };
Exception yang tidak dicek
(cont.)8
 Program tersebut di atas langsung bisa
dikompilasi.
 Hasil eksekusinya (running) :
10
20
30
java.lang.ArrayIndexOutOfBoundsException: 3
at DemoException.main(DemoException.java:5)
Exception in thread "main" Normal Termination
 Exception di atas terjadi karena program
mencoba mengakses nilai dari array yang
terdapat pada indeks di luar kapasitas array itu
sendiri
Exception yang dicek
9
 Semua tipe exception yang bukan turunan dari class
RuntimeException merupakan exception yang “harus” ditangani
menggunakan blok try catch.
 Java bahkan tidak mengijinkan kita mengkompilasi program yang
kita 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. }
Exception yang dicek (cont.)
10
 Program di atas digunakan untuk membuat sebuah file dengan
nama te st. txt, namun method cre ate Ne wFile () pada class File dapat
mengakibatkan exception yang bertipe java.io.IOException yang
bukan turunan dari class RuntimeException
 Jika program di atas dikompilasi maka akan memunculkan pesan :
DemoFileException.java:6: unreported exception
java.io.IOException; must be caught or declared to be
thrown
test.createNewFile();
^
1 error
 Exception ini harus ditangani dengan blok try catch.
Exception yang dicek (cont.)
11
 Agar program di atas bisa dikompilasi, maka gunakan blojk try catch
seperti 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. }
Penggunaan Blok try catch
12
 Walaupun penanganan exception secara default cukup
bermanfaat, namun terkadang kita ingin menangani
exception tersebut dengan cara yang berbeda.
 Ada beberapa alasan mengapa kita ingin melakukan
ini :
 Kita ingin program kita memperbaiki kesalahan akibat exception
& terus melanjutkan eksekusi seolah-olah tidak pernah terjadi
exception
 Kita ingin program terus berjalan dan bukannya dihentikan pada
saat exception terjadi.
 User umumnya tidak mengerti dengan pesan kesalahan yang
dimunculkan, apalagi beserta stack tracenya sehingga kurang
bermanfaat untuk user. Jadi kita mungkin ingin mengganti pesan
tersebut menjadi pesan yang lebih mudah dimengerti.
Penggunaan Blok try catch
13
1. 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 :
10
20
30
Terjadi Exception
ProgramSelesai
Atau Programdi atas bisa juga ditulis dalambentuk, seperti di bawah ini :
Penggunaan Blok try catch
14
1. 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. };
Penggunaan Blok try catch
15
1. 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. };
Penggunaan lebih dari satu
catch16
 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 DemoTryCatch
2. {
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. }
Penggunaan lebih dari satu catch
(cont.)
17
 Pada program di atas, jika nilai x=0 maka
outputnya :
 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
Penggunaan lebih dari satu catch
(cont.)
18
 Dengan demikian terlihat bahwa blok catch
yang mana yang dieksekusi oleh Java
tergantung pada exception yang terjadi.
 Dalam menggunakan lebih dari satu blok
catch, perlu diperhatikan bahwa blok catch
dengan tipe data subclass harus ditulis
terlebih dahulu baru diikuti dengan blok catch
dengan tipe data superclass.
Penggunaan lebih dari satu catch
(cont.)
19
Contoh (yang benar):
1. public class DemoTryCatch
2. {
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. }
Penggunaan lebih dari satu catch
(cont.)
20
Contoh (yang salah):
1. public class DemoTryCatch
2. {
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. }
Common Exception
21
 ArithmeticException
 NullPointerException
 NegativeArraySizeException
 ArrayIndexOutOfBoundsException
 SecurityException
Pemakaian throw
22
 Secara eksplist, kita dapat melempar (thro w)
exception dari dalam program dengan
menggunakan keyword throw. Secara umum
penggunaannya adalah :
throw ExceptionObject
 ExceptionObject adalah adalah object-
object instan dari class yang merupakan
turunan dari class Throwable.
Contoh Pemakaian throw
23
1. 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. };
Contoh Pemakaian throw
24
1. 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("Salah
Array");
1. else
2. 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. };
Pemakaian Finally
25
 Penggunaan blok try catch terkadang
membingungkan karena kita tidak dapat
menentukan dengan pasti alur mana yang akan
dieksekusi.
 Apalagi penggunaan throw yang
mengakibatkan kode setelah throw tidak akan
dieksekusi atau justru terjadi kesalahan pada
blok catch, menyebabkan program akan
berhenti.
 Untuk mengatasi problem ini, Java
memperkenalkan keyword finally. Dimana
semua kode yang ada dalam blok finally “pasti”
akan dieksekusi apapun yang terjadi di dalam
blok try catch.
Pemakaian Finally
26
Contoh:
1. public class DemoFinally
2. {
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. }
Pemakaian Finally
27
 Program di atas menunjukkan bahwa terjadi
exception pada baris ke-8, sehingga
menyebabkan program menjalan kode yang ada
dalam blok catch.
 Tetapi dalam blok catch pun terjadi exception,
sehingga program akan berhenti, sehingga kode
pada baris ke-15, tidak akan dijalankan.
Bagaimana seandainya kode pada baris ke-15
itu adalah hal yang sangat penting?
 Solusinya : Gunakan finally
Pemakaian Finally
28
Contoh:
1. public class DemoFinally
2. {
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. }
Pemakaian throws
29
 Penggunaan keyword ini berhubungan erat
dengan penggunaan exception yang dicek oleh
Java.
 Setiap method yang mungkin menyebabkan
suatu exception & tidak menangani exception
tsb, dalam arti exception tsb akan dilempar ke
luar, maka method tsb harus menjelaskan
kemungkinan ini agar si pemanggil method ini
dapat mengetahui & bersiap-siap untuk
menangani exception yg mungkin terjadi.
 Ini dilakukan dengan cara menggunakan
keyword throws pada saat pendeklarasian
method.
Contoh Pemakaian throws
30
1. 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. };
Membuat Exception sendiri
31
1. 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. else
18. System.out.println(angka[i]);
19. }
20. }
21. };
Membuat Exception sendiri32
1. 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. };

Contenu connexe

Tendances

Jeni Intro1 Bab12 Dasar Exception Handling
Jeni Intro1 Bab12 Dasar Exception HandlingJeni Intro1 Bab12 Dasar Exception Handling
Jeni Intro1 Bab12 Dasar Exception HandlingIndividual Consultants
 
rahmat ramadhani dasar pmograman
rahmat ramadhani dasar pmogramanrahmat ramadhani dasar pmograman
rahmat ramadhani dasar pmogramanrahmat1717
 
Laporan1
Laporan1Laporan1
Laporan1Sa Lam
 
[PBO] Pertemuan 10 - Exception & Error Handling
[PBO] Pertemuan 10 - Exception & Error Handling[PBO] Pertemuan 10 - Exception & Error Handling
[PBO] Pertemuan 10 - Exception & Error Handlingrizki adam kurniawan
 
15. modul bahasa pemrograman (java)
15. modul bahasa pemrograman (java)15. modul bahasa pemrograman (java)
15. modul bahasa pemrograman (java)Safz Cabeza
 
OOP - Exception
OOP - ExceptionOOP - Exception
OOP - ExceptionKuliahKita
 
1 exception handling
1 exception handling1 exception handling
1 exception handlingFajar Baskoro
 
Modul PBO Bab-10 - Event & Exception Handling
Modul PBO Bab-10 - Event & Exception HandlingModul PBO Bab-10 - Event & Exception Handling
Modul PBO Bab-10 - Event & Exception HandlingRakhmat Dedi Gunawan
 
Tugas perulangan/Looping
Tugas perulangan/LoopingTugas perulangan/Looping
Tugas perulangan/LoopingIqbalSyawaludin
 
pbo 8 ervan
pbo 8 ervanpbo 8 ervan
pbo 8 ervanaris
 
Pemograman java php_berbasis_oop
Pemograman java php_berbasis_oopPemograman java php_berbasis_oop
Pemograman java php_berbasis_oopDaniel Hutapea
 

Tendances (19)

Jeni Intro1 Bab12 Dasar Exception Handling
Jeni Intro1 Bab12 Dasar Exception HandlingJeni Intro1 Bab12 Dasar Exception Handling
Jeni Intro1 Bab12 Dasar Exception Handling
 
rahmat ramadhani dasar pmograman
rahmat ramadhani dasar pmogramanrahmat ramadhani dasar pmograman
rahmat ramadhani dasar pmograman
 
Laporan1
Laporan1Laporan1
Laporan1
 
[PBO] Pertemuan 10 - Exception & Error Handling
[PBO] Pertemuan 10 - Exception & Error Handling[PBO] Pertemuan 10 - Exception & Error Handling
[PBO] Pertemuan 10 - Exception & Error Handling
 
15. modul bahasa pemrograman (java)
15. modul bahasa pemrograman (java)15. modul bahasa pemrograman (java)
15. modul bahasa pemrograman (java)
 
OOP - Exception
OOP - ExceptionOOP - Exception
OOP - Exception
 
1 exception handling
1 exception handling1 exception handling
1 exception handling
 
Modul praktikum-pemrograman java dgn netbeans
Modul praktikum-pemrograman java dgn netbeansModul praktikum-pemrograman java dgn netbeans
Modul praktikum-pemrograman java dgn netbeans
 
PBO Pratikum 1
PBO Pratikum 1PBO Pratikum 1
PBO Pratikum 1
 
Java1
Java1Java1
Java1
 
Pengulangan dan Seleksi
Pengulangan dan SeleksiPengulangan dan Seleksi
Pengulangan dan Seleksi
 
Modul PBO Bab-10 - Event & Exception Handling
Modul PBO Bab-10 - Event & Exception HandlingModul PBO Bab-10 - Event & Exception Handling
Modul PBO Bab-10 - Event & Exception Handling
 
Prak 1
Prak 1Prak 1
Prak 1
 
Tugas perulangan/Looping
Tugas perulangan/LoopingTugas perulangan/Looping
Tugas perulangan/Looping
 
Algoritma dan pemrograman
Algoritma dan pemrogramanAlgoritma dan pemrograman
Algoritma dan pemrograman
 
pbo 8 ervan
pbo 8 ervanpbo 8 ervan
pbo 8 ervan
 
Jeni Intro2 Bab11 Applet
Jeni Intro2 Bab11 AppletJeni Intro2 Bab11 Applet
Jeni Intro2 Bab11 Applet
 
Pemograman java php_berbasis_oop
Pemograman java php_berbasis_oopPemograman java php_berbasis_oop
Pemograman java php_berbasis_oop
 
Algol
AlgolAlgol
Algol
 

Similaire à Exception Handling

Jeni intro1-bab12-dasar exception handling
Jeni intro1-bab12-dasar exception handlingJeni intro1-bab12-dasar exception handling
Jeni intro1-bab12-dasar exception handlingKristanto Wijaya
 
8_Penangan Eksepsi.pdf
8_Penangan Eksepsi.pdf8_Penangan Eksepsi.pdf
8_Penangan Eksepsi.pdfJurnal IT
 
8_Penangan Eksepsi.pdf
8_Penangan Eksepsi.pdf8_Penangan Eksepsi.pdf
8_Penangan Eksepsi.pdfJurnal IT
 
Chapter 10. Operasi IO.ppt
Chapter 10. Operasi IO.pptChapter 10. Operasi IO.ppt
Chapter 10. Operasi IO.pptTashidFafri1
 
Modul v dan vi algo
Modul v dan vi algoModul v dan vi algo
Modul v dan vi algoSTMIK AKAKOM
 
Laporan Modul 1 Praktikum Pemrograman Berbasis Objek
Laporan Modul 1 Praktikum Pemrograman Berbasis ObjekLaporan Modul 1 Praktikum Pemrograman Berbasis Objek
Laporan Modul 1 Praktikum Pemrograman Berbasis ObjekKuncara Laksana
 
Object oriented programming menggunakan java
Object oriented programming menggunakan javaObject oriented programming menggunakan java
Object oriented programming menggunakan javaAntara BoyKean
 
Modul praktikum java pemrograman berorientasi objek
Modul praktikum java pemrograman berorientasi objekModul praktikum java pemrograman berorientasi objek
Modul praktikum java pemrograman berorientasi objekimam arifin
 

Similaire à Exception Handling (20)

29934 materi dan tugas pbo lanjut exception_
29934 materi dan tugas pbo lanjut  exception_29934 materi dan tugas pbo lanjut  exception_
29934 materi dan tugas pbo lanjut exception_
 
Jeni intro1-bab12-dasar exception handling
Jeni intro1-bab12-dasar exception handlingJeni intro1-bab12-dasar exception handling
Jeni intro1-bab12-dasar exception handling
 
18314 minggu 12 penanganan kesalahan menangkap exception
18314 minggu 12 penanganan kesalahan menangkap exception18314 minggu 12 penanganan kesalahan menangkap exception
18314 minggu 12 penanganan kesalahan menangkap exception
 
17728 minggu 12 penanganan kesalahan menangkap exception
17728 minggu 12 penanganan kesalahan menangkap exception17728 minggu 12 penanganan kesalahan menangkap exception
17728 minggu 12 penanganan kesalahan menangkap exception
 
Penanganan kesalahan menangkap exception
Penanganan kesalahan menangkap exceptionPenanganan kesalahan menangkap exception
Penanganan kesalahan menangkap exception
 
8_Penangan Eksepsi.pdf
8_Penangan Eksepsi.pdf8_Penangan Eksepsi.pdf
8_Penangan Eksepsi.pdf
 
8_Penangan Eksepsi.pdf
8_Penangan Eksepsi.pdf8_Penangan Eksepsi.pdf
8_Penangan Eksepsi.pdf
 
6497 13 penanganan pesan exception
6497 13 penanganan pesan exception6497 13 penanganan pesan exception
6497 13 penanganan pesan exception
 
Laporan pboii 2yosa
Laporan pboii 2yosaLaporan pboii 2yosa
Laporan pboii 2yosa
 
Ii java input ouput
Ii   java input ouputIi   java input ouput
Ii java input ouput
 
Modul 8 pbo
Modul 8 pboModul 8 pbo
Modul 8 pbo
 
Modul pbo baru
Modul pbo baruModul pbo baru
Modul pbo baru
 
Chapter 10. Operasi IO.ppt
Chapter 10. Operasi IO.pptChapter 10. Operasi IO.ppt
Chapter 10. Operasi IO.ppt
 
Modul belajar java I/O (Input/Ouptut)
Modul belajar java I/O (Input/Ouptut)Modul belajar java I/O (Input/Ouptut)
Modul belajar java I/O (Input/Ouptut)
 
Modul v dan vi algo
Modul v dan vi algoModul v dan vi algo
Modul v dan vi algo
 
Laporan Modul 1 Praktikum Pemrograman Berbasis Objek
Laporan Modul 1 Praktikum Pemrograman Berbasis ObjekLaporan Modul 1 Praktikum Pemrograman Berbasis Objek
Laporan Modul 1 Praktikum Pemrograman Berbasis Objek
 
Object oriented programming menggunakan java
Object oriented programming menggunakan javaObject oriented programming menggunakan java
Object oriented programming menggunakan java
 
Modul praktikum java pemrograman berorientasi objek
Modul praktikum java pemrograman berorientasi objekModul praktikum java pemrograman berorientasi objek
Modul praktikum java pemrograman berorientasi objek
 
Modul Object Oriented Programming
Modul Object Oriented ProgrammingModul Object Oriented Programming
Modul Object Oriented Programming
 
Java
JavaJava
Java
 

Dernier

Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxBab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxssuser35630b
 
Membuat Komik Digital Berisi Kritik Sosial.docx
Membuat Komik Digital Berisi Kritik Sosial.docxMembuat Komik Digital Berisi Kritik Sosial.docx
Membuat Komik Digital Berisi Kritik Sosial.docxNurindahSetyawati1
 
UT PGSD PDGK4103 MODUL 2 STRUKTUR TUBUH Pada Makhluk Hidup
UT PGSD PDGK4103 MODUL 2 STRUKTUR TUBUH Pada Makhluk HidupUT PGSD PDGK4103 MODUL 2 STRUKTUR TUBUH Pada Makhluk Hidup
UT PGSD PDGK4103 MODUL 2 STRUKTUR TUBUH Pada Makhluk Hidupfamela161
 
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...asepsaefudin2009
 
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..ikayogakinasih12
 
CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7IwanSumantri7
 
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...Kanaidi ken
 
MODUL P5 KEWIRAUSAHAAN SMAN 2 SLAWI 2023.pptx
MODUL P5 KEWIRAUSAHAAN SMAN 2 SLAWI 2023.pptxMODUL P5 KEWIRAUSAHAAN SMAN 2 SLAWI 2023.pptx
MODUL P5 KEWIRAUSAHAAN SMAN 2 SLAWI 2023.pptxSlasiWidasmara1
 
Modul Projek - Batik Ecoprint - Fase B.pdf
Modul Projek  - Batik Ecoprint - Fase B.pdfModul Projek  - Batik Ecoprint - Fase B.pdf
Modul Projek - Batik Ecoprint - Fase B.pdfanitanurhidayah51
 
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptArkhaRega1
 
Dasar-Dasar Sakramen dalam gereja katolik
Dasar-Dasar Sakramen dalam gereja katolikDasar-Dasar Sakramen dalam gereja katolik
Dasar-Dasar Sakramen dalam gereja katolikThomasAntonWibowo
 
MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdf
MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdfMAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdf
MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdfChananMfd
 
Perumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptxPerumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptxadimulianta1
 
RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...
RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...
RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...Kanaidi ken
 
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdfMODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdfNurulHikmah50658
 
PPT AKUNTANSI KEUANGAN MENENGAH DUA.pptx
PPT AKUNTANSI KEUANGAN MENENGAH DUA.pptxPPT AKUNTANSI KEUANGAN MENENGAH DUA.pptx
PPT AKUNTANSI KEUANGAN MENENGAH DUA.pptxssuser8905b3
 
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptxPERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptxRizkyPratiwi19
 
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptxKontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptxssuser50800a
 
Hiperlipidemiaaaaaaaaaaaaaaaaaaaaaaaaaaa
HiperlipidemiaaaaaaaaaaaaaaaaaaaaaaaaaaaHiperlipidemiaaaaaaaaaaaaaaaaaaaaaaaaaaa
Hiperlipidemiaaaaaaaaaaaaaaaaaaaaaaaaaaafarmasipejatentimur
 
tugas karya ilmiah 1 universitas terbuka pembelajaran
tugas karya ilmiah 1 universitas terbuka pembelajarantugas karya ilmiah 1 universitas terbuka pembelajaran
tugas karya ilmiah 1 universitas terbuka pembelajarankeicapmaniez
 

Dernier (20)

Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxBab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
 
Membuat Komik Digital Berisi Kritik Sosial.docx
Membuat Komik Digital Berisi Kritik Sosial.docxMembuat Komik Digital Berisi Kritik Sosial.docx
Membuat Komik Digital Berisi Kritik Sosial.docx
 
UT PGSD PDGK4103 MODUL 2 STRUKTUR TUBUH Pada Makhluk Hidup
UT PGSD PDGK4103 MODUL 2 STRUKTUR TUBUH Pada Makhluk HidupUT PGSD PDGK4103 MODUL 2 STRUKTUR TUBUH Pada Makhluk Hidup
UT PGSD PDGK4103 MODUL 2 STRUKTUR TUBUH Pada Makhluk Hidup
 
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...
 
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
 
CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7
 
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...
 
MODUL P5 KEWIRAUSAHAAN SMAN 2 SLAWI 2023.pptx
MODUL P5 KEWIRAUSAHAAN SMAN 2 SLAWI 2023.pptxMODUL P5 KEWIRAUSAHAAN SMAN 2 SLAWI 2023.pptx
MODUL P5 KEWIRAUSAHAAN SMAN 2 SLAWI 2023.pptx
 
Modul Projek - Batik Ecoprint - Fase B.pdf
Modul Projek  - Batik Ecoprint - Fase B.pdfModul Projek  - Batik Ecoprint - Fase B.pdf
Modul Projek - Batik Ecoprint - Fase B.pdf
 
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
 
Dasar-Dasar Sakramen dalam gereja katolik
Dasar-Dasar Sakramen dalam gereja katolikDasar-Dasar Sakramen dalam gereja katolik
Dasar-Dasar Sakramen dalam gereja katolik
 
MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdf
MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdfMAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdf
MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdf
 
Perumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptxPerumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptx
 
RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...
RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...
RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...
 
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdfMODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
 
PPT AKUNTANSI KEUANGAN MENENGAH DUA.pptx
PPT AKUNTANSI KEUANGAN MENENGAH DUA.pptxPPT AKUNTANSI KEUANGAN MENENGAH DUA.pptx
PPT AKUNTANSI KEUANGAN MENENGAH DUA.pptx
 
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptxPERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
 
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptxKontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
 
Hiperlipidemiaaaaaaaaaaaaaaaaaaaaaaaaaaa
HiperlipidemiaaaaaaaaaaaaaaaaaaaaaaaaaaaHiperlipidemiaaaaaaaaaaaaaaaaaaaaaaaaaaa
Hiperlipidemiaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
tugas karya ilmiah 1 universitas terbuka pembelajaran
tugas karya ilmiah 1 universitas terbuka pembelajarantugas karya ilmiah 1 universitas terbuka pembelajaran
tugas karya ilmiah 1 universitas terbuka pembelajaran
 

Exception Handling

  • 1. OBJECT ORIENTED PROGAMMING EXCEPTION HANDLING Disusun Oleh : Dany Triono Gregorius Airlangga Novi Tasari Igmal Trisnawan Jurusan Sistem Informatika – STIKOM YOS SUDARSO Purwokerto
  • 2. TUJUAN 2  Mengerti Exception Handling dan mampu mengimplementasikan dalam bahasa pemrograman Java.  Mengerti dan mampu membuat kelas exception
  • 3. PENDAHULUAN 3  Exception adalah suatu kondisi abnormal yang terjadi pada saat pengeksekusian suatu perintah  Karena Java  e ve rything is o bje ct, maka exception juga direpresentasikan oleh sebuah object.  Pada saat terjadi exception, ada 2 pilihan yang dapat dilakukan :  Menangani sendiri exception tersebut  Meneruskannya ke luar dengan cara membuat object yang menjelaskan exception tersebut dan melemparkannya (thro w) ke luar agar ditangani oleh kode yang memanggil method tsb.
  • 4. Exception 4  Ada lima keywords yang digunakan oleh Java untuk menangani exception ini, yaitu :  try  catch  finally  thro w  thro ws  Secara umum bentuk penggunaannya adalah :
  • 5. Exception 5  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 dengan 6. TipeException1 */ 7. } 8. catch (TipeException2 objectException){ 9. /*kode untuk menangani exception yang cocok dengan 10. TipeException2 */ 11. } 12. finally { 13. /*kode yang pasti akan dieksekusi setelah blok try catch di 14. atas dieksekusi*/ 15. }
  • 6. Tipe-tipe Exception 6  Semua class exception terdapat dalam package java.lang.  Superclass tertinggi adalah class Throwable, tetapi kita hampir tidak pernah menggunakan class ini secara langsung  Class Error  tipe exception yang seharusnya tidak ditangani dengan menggunakan blok try catch karena berhubungan dengan Java run-time system/evironment. Jadi exception yang terjadi kemungkinannya sangat kristis yang sebaiknya tidak ditangani oleh program kita sendiri.  Class Exception  tipe exception yang sebaiknya ditangani oleh program kita secara langsung.  Dalam penggunaannya, kita akan banyak menangani exception yg merupakan turunan dari class Exception ini. Salah satu turunannya yang perlu diperhatikan adalah class RuntimeException,karena Java memperlakukan class ini &
  • 7. Exception yang tidak dicek 7  Semua Exception yang bertipe RuntimeException dan turunannya tidak 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. Exception yang tidak dicek (cont.)8  Program tersebut di atas langsung bisa dikompilasi.  Hasil eksekusinya (running) : 10 20 30 java.lang.ArrayIndexOutOfBoundsException: 3 at DemoException.main(DemoException.java:5) Exception in thread "main" Normal Termination  Exception di atas terjadi karena program mencoba mengakses nilai dari array yang terdapat pada indeks di luar kapasitas array itu sendiri
  • 9. Exception yang dicek 9  Semua tipe exception yang bukan turunan dari class RuntimeException merupakan exception yang “harus” ditangani menggunakan blok try catch.  Java bahkan tidak mengijinkan kita mengkompilasi program yang kita 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. Exception yang dicek (cont.) 10  Program di atas digunakan untuk membuat sebuah file dengan nama te st. txt, namun method cre ate Ne wFile () pada class File dapat mengakibatkan exception yang bertipe java.io.IOException yang bukan turunan dari class RuntimeException  Jika program di atas dikompilasi maka akan memunculkan pesan : DemoFileException.java:6: unreported exception java.io.IOException; must be caught or declared to be thrown test.createNewFile(); ^ 1 error  Exception ini harus ditangani dengan blok try catch.
  • 11. Exception yang dicek (cont.) 11  Agar program di atas bisa dikompilasi, maka gunakan blojk try catch seperti 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. Penggunaan Blok try catch 12  Walaupun penanganan exception secara default cukup bermanfaat, namun terkadang kita ingin menangani exception tersebut dengan cara yang berbeda.  Ada beberapa alasan mengapa kita ingin melakukan ini :  Kita ingin program kita memperbaiki kesalahan akibat exception & terus melanjutkan eksekusi seolah-olah tidak pernah terjadi exception  Kita ingin program terus berjalan dan bukannya dihentikan pada saat exception terjadi.  User umumnya tidak mengerti dengan pesan kesalahan yang dimunculkan, apalagi beserta stack tracenya sehingga kurang bermanfaat untuk user. Jadi kita mungkin ingin mengganti pesan tersebut menjadi pesan yang lebih mudah dimengerti.
  • 13. Penggunaan Blok try catch 13 1. 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 : 10 20 30 Terjadi Exception ProgramSelesai Atau Programdi atas bisa juga ditulis dalambentuk, seperti di bawah ini :
  • 14. Penggunaan Blok try catch 14 1. 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. Penggunaan Blok try catch 15 1. 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. Penggunaan lebih dari satu catch16  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 DemoTryCatch 2. { 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. Penggunaan lebih dari satu catch (cont.) 17  Pada program di atas, jika nilai x=0 maka outputnya :  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. Penggunaan lebih dari satu catch (cont.) 18  Dengan demikian terlihat bahwa blok catch yang mana yang dieksekusi oleh Java tergantung pada exception yang terjadi.  Dalam menggunakan lebih dari satu blok catch, perlu diperhatikan bahwa blok catch dengan tipe data subclass harus ditulis terlebih dahulu baru diikuti dengan blok catch dengan tipe data superclass.
  • 19. Penggunaan lebih dari satu catch (cont.) 19 Contoh (yang benar): 1. public class DemoTryCatch 2. { 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. Penggunaan lebih dari satu catch (cont.) 20 Contoh (yang salah): 1. public class DemoTryCatch 2. { 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. Common Exception 21  ArithmeticException  NullPointerException  NegativeArraySizeException  ArrayIndexOutOfBoundsException  SecurityException
  • 22. Pemakaian throw 22  Secara eksplist, kita dapat melempar (thro w) exception dari dalam program dengan menggunakan keyword throw. Secara umum penggunaannya adalah : throw ExceptionObject  ExceptionObject adalah adalah object- object instan dari class yang merupakan turunan dari class Throwable.
  • 23. Contoh Pemakaian throw 23 1. 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. Contoh Pemakaian throw 24 1. 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("Salah Array"); 1. else 2. 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. Pemakaian Finally 25  Penggunaan blok try catch terkadang membingungkan karena kita tidak dapat menentukan dengan pasti alur mana yang akan dieksekusi.  Apalagi penggunaan throw yang mengakibatkan kode setelah throw tidak akan dieksekusi atau justru terjadi kesalahan pada blok catch, menyebabkan program akan berhenti.  Untuk mengatasi problem ini, Java memperkenalkan keyword finally. Dimana semua kode yang ada dalam blok finally “pasti” akan dieksekusi apapun yang terjadi di dalam blok try catch.
  • 26. Pemakaian Finally 26 Contoh: 1. public class DemoFinally 2. { 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. Pemakaian Finally 27  Program di atas menunjukkan bahwa terjadi exception pada baris ke-8, sehingga menyebabkan program menjalan kode yang ada dalam blok catch.  Tetapi dalam blok catch pun terjadi exception, sehingga program akan berhenti, sehingga kode pada baris ke-15, tidak akan dijalankan. Bagaimana seandainya kode pada baris ke-15 itu adalah hal yang sangat penting?  Solusinya : Gunakan finally
  • 28. Pemakaian Finally 28 Contoh: 1. public class DemoFinally 2. { 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. Pemakaian throws 29  Penggunaan keyword ini berhubungan erat dengan penggunaan exception yang dicek oleh Java.  Setiap method yang mungkin menyebabkan suatu exception & tidak menangani exception tsb, dalam arti exception tsb akan dilempar ke luar, maka method tsb harus menjelaskan kemungkinan ini agar si pemanggil method ini dapat mengetahui & bersiap-siap untuk menangani exception yg mungkin terjadi.  Ini dilakukan dengan cara menggunakan keyword throws pada saat pendeklarasian method.
  • 30. Contoh Pemakaian throws 30 1. 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. Membuat Exception sendiri 31 1. 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. else 18. System.out.println(angka[i]); 19. } 20. } 21. };
  • 32. Membuat Exception sendiri32 1. 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. };