SlideShare a Scribd company logo
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. };

More Related Content

What's hot

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 pmograman
rahmat1717
 
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 Handling
rizki 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 - Exception
KuliahKita
 
1 exception handling
1 exception handling1 exception handling
1 exception handling
Fajar Baskoro
 
Modul praktikum-pemrograman java dgn netbeans
Modul praktikum-pemrograman java dgn netbeansModul praktikum-pemrograman java dgn netbeans
Modul praktikum-pemrograman java dgn netbeans
SMK - Statens Museum for Kunst
 
PBO Pratikum 1
PBO Pratikum 1PBO Pratikum 1
PBO Pratikum 1rahmi wahyuni
 
Pengulangan dan Seleksi
Pengulangan dan SeleksiPengulangan dan Seleksi
Pengulangan dan Seleksi
STMIK Amikom Purwokerto
 
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
Rakhmat Dedi Gunawan
 
Tugas perulangan/Looping
Tugas perulangan/LoopingTugas perulangan/Looping
Tugas perulangan/Looping
IqbalSyawaludin
 
Algoritma dan pemrograman
Algoritma dan pemrogramanAlgoritma dan pemrograman
Algoritma dan pemrogramanfadlinurdiansyah
 
pbo 8 ervan
pbo 8 ervanpbo 8 ervan
pbo 8 ervan
aris
 
Pemograman java php_berbasis_oop
Pemograman java php_berbasis_oopPemograman java php_berbasis_oop
Pemograman java php_berbasis_oopDaniel Hutapea
 

What's hot (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
 

Similar to Exception Handling

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_
Universitas Bina Darma Palembang
 
Jeni intro1-bab12-dasar exception handling
Jeni intro1-bab12-dasar exception handlingJeni intro1-bab12-dasar exception handling
Jeni intro1-bab12-dasar exception handling
Kristanto Wijaya
 
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
Universitas Bina Darma Palembang
 
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
Universitas Bina Darma Palembang
 
Penanganan kesalahan menangkap exception
Penanganan kesalahan menangkap exceptionPenanganan kesalahan menangkap exception
Penanganan kesalahan menangkap exception
Universitas Bina Darma Palembang
 
8_Penangan Eksepsi.pdf
8_Penangan Eksepsi.pdf8_Penangan Eksepsi.pdf
8_Penangan Eksepsi.pdf
Jurnal IT
 
8_Penangan Eksepsi.pdf
8_Penangan Eksepsi.pdf8_Penangan Eksepsi.pdf
8_Penangan Eksepsi.pdf
Jurnal IT
 
6497 13 penanganan pesan exception
6497 13 penanganan pesan exception6497 13 penanganan pesan exception
6497 13 penanganan pesan exception
Universitas Bina Darma Palembang
 
Laporan pboii 2yosa
Laporan pboii 2yosaLaporan pboii 2yosa
Laporan pboii 2yosa
Raditya Widayosa
 
Ii java input ouput
Ii   java input ouputIi   java input ouput
Ii java input ouput
Jeblax Al-buchori
 
Modul pbo baru
Modul pbo baruModul pbo baru
Modul pbo baru
Hastri Diahfamily
 
Chapter 10. Operasi IO.ppt
Chapter 10. Operasi IO.pptChapter 10. Operasi IO.ppt
Chapter 10. Operasi IO.ppt
TashidFafri1
 
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)
stephan EL'wiin Shaarawy
 
pemrograman berorientasi Object (java).pptx
pemrograman berorientasi Object (java).pptxpemrograman berorientasi Object (java).pptx
pemrograman berorientasi Object (java).pptx
muhammadabdullah571171
 
Modul v dan vi algo
Modul v dan vi algoModul v dan vi algo
Modul v dan vi algo
STMIK 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 Objek
Kuncara 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 objek
imam arifin
 
Modul Object Oriented Programming
Modul Object Oriented ProgrammingModul Object Oriented Programming
Modul Object Oriented Programming
Teknik Komputer & Informatika
 

Similar to 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
 
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
 
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
 
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)
 
pemrograman berorientasi Object (java).pptx
pemrograman berorientasi Object (java).pptxpemrograman berorientasi Object (java).pptx
pemrograman berorientasi Object (java).pptx
 
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
 

Recently uploaded

penjelasan tentang tugas dan wewenang pkd
penjelasan tentang tugas dan wewenang pkdpenjelasan tentang tugas dan wewenang pkd
penjelasan tentang tugas dan wewenang pkd
jaya35ml2
 
Modul Projek - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...
Modul Projek  - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...Modul Projek  - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...
Modul Projek - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...
MirnasariMutmainna1
 
Kisi-kisi soal pai kelas 7 genap 2024.docx
Kisi-kisi soal pai kelas 7 genap 2024.docxKisi-kisi soal pai kelas 7 genap 2024.docx
Kisi-kisi soal pai kelas 7 genap 2024.docx
irawan1978
 
ppt landasan pendidikan pai 9 revisi.pdf
ppt landasan pendidikan pai 9 revisi.pdfppt landasan pendidikan pai 9 revisi.pdf
ppt landasan pendidikan pai 9 revisi.pdf
setiatinambunan
 
Tugas Mandiri 1.4.a.4.3 Keyakinan Kelas.pdf
Tugas Mandiri 1.4.a.4.3 Keyakinan Kelas.pdfTugas Mandiri 1.4.a.4.3 Keyakinan Kelas.pdf
Tugas Mandiri 1.4.a.4.3 Keyakinan Kelas.pdf
muhammadRifai732845
 
Diseminasi Budaya Positif Lucy Kristina S.pptx
Diseminasi Budaya Positif Lucy Kristina S.pptxDiseminasi Budaya Positif Lucy Kristina S.pptx
Diseminasi Budaya Positif Lucy Kristina S.pptx
LucyKristinaS
 
LAPORAN EKSTRAKURIKULER SEKOLAH DASAR NEGERI
LAPORAN EKSTRAKURIKULER SEKOLAH DASAR NEGERILAPORAN EKSTRAKURIKULER SEKOLAH DASAR NEGERI
LAPORAN EKSTRAKURIKULER SEKOLAH DASAR NEGERI
PURWANTOSDNWATES2
 
Permainan Wiwi Wowo aksi nyata berkebhinekaan
Permainan Wiwi Wowo aksi nyata berkebhinekaanPermainan Wiwi Wowo aksi nyata berkebhinekaan
Permainan Wiwi Wowo aksi nyata berkebhinekaan
DEVI390643
 
KOMITMEN MENULIS DI BLOG KBMN PB PGRI.ppt
KOMITMEN MENULIS DI BLOG KBMN PB PGRI.pptKOMITMEN MENULIS DI BLOG KBMN PB PGRI.ppt
KOMITMEN MENULIS DI BLOG KBMN PB PGRI.ppt
Dedi Dwitagama
 
RANCANGAN TINDAKAN AKSI NYATA MODUL 1.4.pptx
RANCANGAN TINDAKAN AKSI NYATA MODUL 1.4.pptxRANCANGAN TINDAKAN AKSI NYATA MODUL 1.4.pptx
RANCANGAN TINDAKAN AKSI NYATA MODUL 1.4.pptx
SurosoSuroso19
 
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
widyakusuma99
 
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdfPaparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
SEMUELSAMBOKARAENG
 
LK 1 - 5T Keputusan Berdampak PERMATA BUNDA.pdf
LK 1 - 5T Keputusan Berdampak PERMATA BUNDA.pdfLK 1 - 5T Keputusan Berdampak PERMATA BUNDA.pdf
LK 1 - 5T Keputusan Berdampak PERMATA BUNDA.pdf
UditGheozi2
 
Juknis Pengisian Blanko Ijazah 2024 29 04 2024 Top.pptx
Juknis Pengisian Blanko Ijazah 2024 29 04 2024 Top.pptxJuknis Pengisian Blanko Ijazah 2024 29 04 2024 Top.pptx
Juknis Pengisian Blanko Ijazah 2024 29 04 2024 Top.pptx
mattaja008
 
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdfNUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
DataSupriatna
 
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagjaPi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
agusmulyadi08
 
AKSI NYATA TAHAP PERKEMBANGAN PESERTA DIDIK JENJANG SD USIA 6-12 TAHUN.pptx
AKSI NYATA TAHAP PERKEMBANGAN PESERTA DIDIK JENJANG SD USIA 6-12 TAHUN.pptxAKSI NYATA TAHAP PERKEMBANGAN PESERTA DIDIK JENJANG SD USIA 6-12 TAHUN.pptx
AKSI NYATA TAHAP PERKEMBANGAN PESERTA DIDIK JENJANG SD USIA 6-12 TAHUN.pptx
adelsimanjuntak
 
ppt profesionalisasi pendidikan Pai 9.pdf
ppt profesionalisasi pendidikan Pai 9.pdfppt profesionalisasi pendidikan Pai 9.pdf
ppt profesionalisasi pendidikan Pai 9.pdf
Nur afiyah
 
Modul Ajar IPS Kelas 7 Fase D Kurikulum Merdeka
Modul Ajar IPS Kelas 7 Fase D Kurikulum MerdekaModul Ajar IPS Kelas 7 Fase D Kurikulum Merdeka
Modul Ajar IPS Kelas 7 Fase D Kurikulum Merdeka
Fathan Emran
 
Kisi-kisi Soal PAT Matematika Kelas 3 SD
Kisi-kisi Soal PAT Matematika Kelas 3 SDKisi-kisi Soal PAT Matematika Kelas 3 SD
Kisi-kisi Soal PAT Matematika Kelas 3 SD
denunugraha
 

Recently uploaded (20)

penjelasan tentang tugas dan wewenang pkd
penjelasan tentang tugas dan wewenang pkdpenjelasan tentang tugas dan wewenang pkd
penjelasan tentang tugas dan wewenang pkd
 
Modul Projek - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...
Modul Projek  - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...Modul Projek  - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...
Modul Projek - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...
 
Kisi-kisi soal pai kelas 7 genap 2024.docx
Kisi-kisi soal pai kelas 7 genap 2024.docxKisi-kisi soal pai kelas 7 genap 2024.docx
Kisi-kisi soal pai kelas 7 genap 2024.docx
 
ppt landasan pendidikan pai 9 revisi.pdf
ppt landasan pendidikan pai 9 revisi.pdfppt landasan pendidikan pai 9 revisi.pdf
ppt landasan pendidikan pai 9 revisi.pdf
 
Tugas Mandiri 1.4.a.4.3 Keyakinan Kelas.pdf
Tugas Mandiri 1.4.a.4.3 Keyakinan Kelas.pdfTugas Mandiri 1.4.a.4.3 Keyakinan Kelas.pdf
Tugas Mandiri 1.4.a.4.3 Keyakinan Kelas.pdf
 
Diseminasi Budaya Positif Lucy Kristina S.pptx
Diseminasi Budaya Positif Lucy Kristina S.pptxDiseminasi Budaya Positif Lucy Kristina S.pptx
Diseminasi Budaya Positif Lucy Kristina S.pptx
 
LAPORAN EKSTRAKURIKULER SEKOLAH DASAR NEGERI
LAPORAN EKSTRAKURIKULER SEKOLAH DASAR NEGERILAPORAN EKSTRAKURIKULER SEKOLAH DASAR NEGERI
LAPORAN EKSTRAKURIKULER SEKOLAH DASAR NEGERI
 
Permainan Wiwi Wowo aksi nyata berkebhinekaan
Permainan Wiwi Wowo aksi nyata berkebhinekaanPermainan Wiwi Wowo aksi nyata berkebhinekaan
Permainan Wiwi Wowo aksi nyata berkebhinekaan
 
KOMITMEN MENULIS DI BLOG KBMN PB PGRI.ppt
KOMITMEN MENULIS DI BLOG KBMN PB PGRI.pptKOMITMEN MENULIS DI BLOG KBMN PB PGRI.ppt
KOMITMEN MENULIS DI BLOG KBMN PB PGRI.ppt
 
RANCANGAN TINDAKAN AKSI NYATA MODUL 1.4.pptx
RANCANGAN TINDAKAN AKSI NYATA MODUL 1.4.pptxRANCANGAN TINDAKAN AKSI NYATA MODUL 1.4.pptx
RANCANGAN TINDAKAN AKSI NYATA MODUL 1.4.pptx
 
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
 
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdfPaparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
 
LK 1 - 5T Keputusan Berdampak PERMATA BUNDA.pdf
LK 1 - 5T Keputusan Berdampak PERMATA BUNDA.pdfLK 1 - 5T Keputusan Berdampak PERMATA BUNDA.pdf
LK 1 - 5T Keputusan Berdampak PERMATA BUNDA.pdf
 
Juknis Pengisian Blanko Ijazah 2024 29 04 2024 Top.pptx
Juknis Pengisian Blanko Ijazah 2024 29 04 2024 Top.pptxJuknis Pengisian Blanko Ijazah 2024 29 04 2024 Top.pptx
Juknis Pengisian Blanko Ijazah 2024 29 04 2024 Top.pptx
 
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdfNUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
 
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagjaPi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
 
AKSI NYATA TAHAP PERKEMBANGAN PESERTA DIDIK JENJANG SD USIA 6-12 TAHUN.pptx
AKSI NYATA TAHAP PERKEMBANGAN PESERTA DIDIK JENJANG SD USIA 6-12 TAHUN.pptxAKSI NYATA TAHAP PERKEMBANGAN PESERTA DIDIK JENJANG SD USIA 6-12 TAHUN.pptx
AKSI NYATA TAHAP PERKEMBANGAN PESERTA DIDIK JENJANG SD USIA 6-12 TAHUN.pptx
 
ppt profesionalisasi pendidikan Pai 9.pdf
ppt profesionalisasi pendidikan Pai 9.pdfppt profesionalisasi pendidikan Pai 9.pdf
ppt profesionalisasi pendidikan Pai 9.pdf
 
Modul Ajar IPS Kelas 7 Fase D Kurikulum Merdeka
Modul Ajar IPS Kelas 7 Fase D Kurikulum MerdekaModul Ajar IPS Kelas 7 Fase D Kurikulum Merdeka
Modul Ajar IPS Kelas 7 Fase D Kurikulum Merdeka
 
Kisi-kisi Soal PAT Matematika Kelas 3 SD
Kisi-kisi Soal PAT Matematika Kelas 3 SDKisi-kisi Soal PAT Matematika Kelas 3 SD
Kisi-kisi Soal PAT Matematika Kelas 3 SD
 

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. };