SlideShare a Scribd company logo
1 of 4
Download to read offline
J.E.N.I.



                                         BAB 12
                           Dasar Exception Handling


12.1 Tujuan

Dalam bagian ini, kita akan mempelajari teknik yang dipakai dalam Java dalam menangani kondisi
yang tidak biasa dalam menjalankan operasi normal dalam program. Teknik ini dinamakan
exception handling.

Pada akhir pembahasan, diharapkan pembaca dapat :
     Mendefinisikan exception
     Menangani exception menggunakan blok try-catch-finally



12.2       Apa itu Exception?

Exception adalah sebuah peristiwa yang menjalankan alur proses normal pada program. Peristiwa
ini biasanya berupa kesalahan(error) dari beberapa bentuk. Ini disebabkan program kita berakhir
tidak normal.

Beberapa contoh dari exception yang Anda mungkin jumpai pada latihan-latihan sebelumnya
adalah: exception ArrayIndexOutOfBounds, yang terjadi jika kita mencoba mengakses elemen
array yang tidak ada, atau NumberFormatException, yang terjadi ketika kita mencoba melalui
parameter bukan angka dalam method Integer.parseInt.



12.3 Menangani Exception
Untuk menangani exception dalam Java, kita gunakan blok try-catch-finally. Apa yang kita
lakukan dalam program kita adalah kita menempatkan pernyataan yang mungkin menghasilkan
exception dalam blok ini.

Bentuk umum dari blok try-catch-finally adalah,

               try{
                       //tulis pernyataan yang dapat mengakibatkan exception
                       //dalam blok ini
               }
               catch( <exceptionType1> <varName1> ){

                       //tulis aksi apa dari program Anda yang dijalankan jika ada
                       //exception tipe tertentu terjadi
               }
               . . .


Pengenalan Pemrograman 1                                                                     1
J.E.N.I.



               catch( <exceptionTypen> <varNamen> ){
                     //tulis aksi apa dari program Anda yang dijalankan jika ada
                     //exception tipe tertentu terjadi
               }
               finally{
                     //tambahkan kode terakhir di sini
               }


Exception dilemparkan selama eksekusi dari blok try dapat ditangkap dan ditangani dalam blok
catch. Kode dalam blok finally selalu di-eksekusi.

Berikut ini adalah aspek kunci tentang sintak dari konstruksi try-catch-finally:
    Notasi blok bersifat perintah
    Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu blok finally.
    Blok catch dan blok finally harus selalu muncul dalam konjungsi dengan blok try, dan diatas
      urutan
    Blok try harus diikuti oleh paling sedikit satu blok catch ATAU satu blok finally, atau
      keduanya.
    Setiap blok catch mendefinisikan sebuah penanganan exception. Header dari blok catch
      harus membawa satu argumen, dimana exception pada blok tersebut akan ditangani.
      Exception harus menjadi class pelempar atau satu dari subclassesnya.




                                 Gambar 1: Alur kejadian blok try-catch-finally




Pengenalan Pemrograman 1                                                                      2
J.E.N.I.




Marilah mengambil contoh kode yang mencetak argumen kedua ketika kita mencoba menjalankan
kode menggunakan argumen command-line. Perkirakan, tidak ada pengecekan dalam kode Anda
untuk angka dari argumen dan kita hanya mengakses argumen kedua args[1] segera, kita akan
mendapatkan exception berikut.


                 Exception in thread "main"
                 java.lang.ArrayIndexOutOfBoundsException: 1
                       at ExceptionExample.main(ExceptionExample.java:5)



Untuk mencegah kejadian ini, kita dapat menempatkan kode ke dalam blok try-catch. Blok finally
hanya sebagai pilihan lain saja. Sebagai contoh, kita tidak akan menggunakan blok finally.

                 public class ExceptionExample
                 {
                      public static void main( String[] args ){

                       try{
                             System.out.println( args[1] );
                       }catch( ArrayIndexOutOfBoundsException exp ){
                             System.out.println("Exception caught!");
                       }
                      }
           }


Jadi kita akan menjalankan program lagi tanpa argumen, keluarannya akan menjadi,
               Exception caught!




Pengenalan Pemrograman 1                                                                     3
J.E.N.I.




12.4 Latihan
12.4.1            Menangkap Exception 1
Diberikan kode berikut:
       public class TestExceptions{
                      public static void main( String[] args ){
                            for( int i=0; true; i++ ){
                                  System.out.println("args["+i+"]="+
                                              args[i]);
                            }
                      }
           }
Compile dan jalankan program TestExceptions. Keluarannya akan tampak seperti ini:
                javac TestExceptions one two three
                args[0]=one
                args[1]=two
                args[2]=three
                Exception in thread "main"
                      java.lang.ArrayIndexOutOfBoundsException: 3
                at TestExceptions.main(1.java:4)


Ubah program TestExceptions untuk menangani exception, keluaran program setelah ditangkap
exception-nya akan seperti ini:

                 javac TestExceptions one two three
                 args[0]=one
                 args[1]=two
                 args[2]=three
                 Exception caught:
                       java.lang.ArrayIndexOutOfBoundsException: 3
           Quiting...




12.4.2 Menangkap Exception 2
Melakukan percobaan pada beberapa program yang telah Anda tulis adalah hal yang baik sebelum
menghadapi exception. Karena pada program di atas Anda tidak menangkap exception, maka
eksekusi dengan mudahnya berhenti mengeksekusi program Anda. Kembali kepada program
diatas dan gunakan penanganan exception.




Pengenalan Pemrograman 1                                                                  4

More Related Content

What's hot

Java (Netbeans) - Exception handling - Object Oriented Programming
Java (Netbeans) - Exception handling - Object Oriented ProgrammingJava (Netbeans) - Exception handling - Object Oriented Programming
Java (Netbeans) - Exception handling - Object Oriented ProgrammingMelina Krisnawati
 
1 exception handling
1 exception handling1 exception handling
1 exception handlingFajar Baskoro
 
[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
 
OOP - Exception
OOP - ExceptionOOP - Exception
OOP - ExceptionKuliahKita
 
PBO - Pert 8, Mengenal dan Memahami Konsep Jump Pada Perulangan dan Percabang...
PBO - Pert 8, Mengenal dan Memahami Konsep Jump Pada Perulangan dan Percabang...PBO - Pert 8, Mengenal dan Memahami Konsep Jump Pada Perulangan dan Percabang...
PBO - Pert 8, Mengenal dan Memahami Konsep Jump Pada Perulangan dan Percabang...RUDISELAMAT2
 
pbo 8 ervan
pbo 8 ervanpbo 8 ervan
pbo 8 ervanaris
 
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)Melina Krisnawati
 
Flow control, exception handling array
Flow control, exception handling arrayFlow control, exception handling array
Flow control, exception handling arrayRangga Ananto
 
Java (Netbeans) - Looping - Object Oriented Programming
Java (Netbeans) - Looping - Object Oriented ProgrammingJava (Netbeans) - Looping - Object Oriented Programming
Java (Netbeans) - Looping - Object Oriented ProgrammingMelina Krisnawati
 
PBO Pert 4 Praktek
PBO Pert 4 PraktekPBO Pert 4 Praktek
PBO Pert 4 PraktekRUDISELAMAT2
 
PBO - Pert 5, Mengenal dan Memahami Konsep Perulangan Pada Java
PBO - Pert 5, Mengenal dan Memahami Konsep Perulangan Pada JavaPBO - Pert 5, Mengenal dan Memahami Konsep Perulangan Pada Java
PBO - Pert 5, Mengenal dan Memahami Konsep Perulangan Pada JavaRUDISELAMAT2
 
Pengenalan pemrograman java
Pengenalan pemrograman javaPengenalan pemrograman java
Pengenalan pemrograman javaWiEn SHipiet
 

What's hot (19)

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_
 
Penanganan kesalahan menangkap exception
Penanganan kesalahan menangkap exceptionPenanganan kesalahan menangkap exception
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
 
Java (Netbeans) - Exception handling - Object Oriented Programming
Java (Netbeans) - Exception handling - Object Oriented ProgrammingJava (Netbeans) - Exception handling - Object Oriented Programming
Java (Netbeans) - Exception handling - Object Oriented Programming
 
Laporan pboii 2yosa
Laporan pboii 2yosaLaporan pboii 2yosa
Laporan pboii 2yosa
 
1 exception handling
1 exception handling1 exception handling
1 exception handling
 
[PBO] Pertemuan 10 - Exception & Error Handling
[PBO] Pertemuan 10 - Exception & Error Handling[PBO] Pertemuan 10 - Exception & Error Handling
[PBO] Pertemuan 10 - Exception & Error Handling
 
OOP - Exception
OOP - ExceptionOOP - Exception
OOP - Exception
 
PBO - Pert 8, Mengenal dan Memahami Konsep Jump Pada Perulangan dan Percabang...
PBO - Pert 8, Mengenal dan Memahami Konsep Jump Pada Perulangan dan Percabang...PBO - Pert 8, Mengenal dan Memahami Konsep Jump Pada Perulangan dan Percabang...
PBO - Pert 8, Mengenal dan Memahami Konsep Jump Pada Perulangan dan Percabang...
 
pbo 8 ervan
pbo 8 ervanpbo 8 ervan
pbo 8 ervan
 
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
 
Flow control, exception handling array
Flow control, exception handling arrayFlow control, exception handling array
Flow control, exception handling array
 
Java (Netbeans) - Looping - Object Oriented Programming
Java (Netbeans) - Looping - Object Oriented ProgrammingJava (Netbeans) - Looping - Object Oriented Programming
Java (Netbeans) - Looping - Object Oriented Programming
 
Clean Method
Clean MethodClean Method
Clean Method
 
PBO Pert 4 Praktek
PBO Pert 4 PraktekPBO Pert 4 Praktek
PBO Pert 4 Praktek
 
PBO - Pert 5, Mengenal dan Memahami Konsep Perulangan Pada Java
PBO - Pert 5, Mengenal dan Memahami Konsep Perulangan Pada JavaPBO - Pert 5, Mengenal dan Memahami Konsep Perulangan Pada Java
PBO - Pert 5, Mengenal dan Memahami Konsep Perulangan Pada Java
 
Pengenalan pemrograman java
Pengenalan pemrograman javaPengenalan pemrograman java
Pengenalan pemrograman java
 
Pertemuan 5
Pertemuan 5Pertemuan 5
Pertemuan 5
 
Tugas Praktikum ke dua
Tugas Praktikum ke duaTugas Praktikum ke dua
Tugas Praktikum ke dua
 

Viewers also liked

Viewers also liked (6)

the Mann & Social Media
the Mann & Social Mediathe Mann & Social Media
the Mann & Social Media
 
Tanya Carter, Deputy Executive Director, Denver Public Schools Presentation
Tanya Carter, Deputy Executive Director, Denver Public Schools PresentationTanya Carter, Deputy Executive Director, Denver Public Schools Presentation
Tanya Carter, Deputy Executive Director, Denver Public Schools Presentation
 
Icicles
IciclesIcicles
Icicles
 
dr_4
dr_4dr_4
dr_4
 
&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />
 
&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />
 

Similar to JENI_12_Exception

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
 
Modul6 1225443461187631-8
Modul6 1225443461187631-8Modul6 1225443461187631-8
Modul6 1225443461187631-8aan_junior147
 
Jeni intro1-bab06-struktur kontrol
Jeni intro1-bab06-struktur kontrolJeni intro1-bab06-struktur kontrol
Jeni intro1-bab06-struktur kontrolKristanto Wijaya
 
Jeni Intro1 Bab08 Argumen Dari Command Linei
Jeni Intro1 Bab08 Argumen Dari  Command LineiJeni Intro1 Bab08 Argumen Dari  Command Linei
Jeni Intro1 Bab08 Argumen Dari Command LineiIndividual Consultants
 
Jeni Intro1 Bab08 Argumen Dari Command Linei
Jeni Intro1 Bab08 Argumen Dari  Command LineiJeni Intro1 Bab08 Argumen Dari  Command Linei
Jeni Intro1 Bab08 Argumen Dari Command LineiIndividual Consultants
 
JENI-Intro1-Bab06-Struktur Kontrol.pdf
JENI-Intro1-Bab06-Struktur Kontrol.pdfJENI-Intro1-Bab06-Struktur Kontrol.pdf
JENI-Intro1-Bab06-Struktur Kontrol.pdfJurnal IT
 
Modul praktikum java pemrograman berorientasi objek
Modul praktikum java pemrograman berorientasi objekModul praktikum java pemrograman berorientasi objek
Modul praktikum java pemrograman berorientasi objekimam arifin
 
Struktur data
Struktur dataStruktur data
Struktur dataadhhal88
 
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
 

Similar to JENI_12_Exception (18)

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
 
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
 
16. error handling
16. error handling16. error handling
16. error handling
 
Modul 8 pbo
Modul 8 pboModul 8 pbo
Modul 8 pbo
 
Modul6 1225443461187631-8
Modul6 1225443461187631-8Modul6 1225443461187631-8
Modul6 1225443461187631-8
 
Jeni Intro1 Bab06 Struktur Kontrol
Jeni Intro1 Bab06 Struktur KontrolJeni Intro1 Bab06 Struktur Kontrol
Jeni Intro1 Bab06 Struktur Kontrol
 
Jeni intro1-bab06-struktur kontrol
Jeni intro1-bab06-struktur kontrolJeni intro1-bab06-struktur kontrol
Jeni intro1-bab06-struktur kontrol
 
Ii java input ouput
Ii   java input ouputIi   java input ouput
Ii java input ouput
 
Prak 1
Prak 1Prak 1
Prak 1
 
Jeni Intro2 Bab11 Applet
Jeni Intro2 Bab11 AppletJeni Intro2 Bab11 Applet
Jeni Intro2 Bab11 Applet
 
Jeni Intro1 Bab08 Argumen Dari Command Linei
Jeni Intro1 Bab08 Argumen Dari  Command LineiJeni Intro1 Bab08 Argumen Dari  Command Linei
Jeni Intro1 Bab08 Argumen Dari Command Linei
 
Jeni Intro1 Bab08 Argumen Dari Command Linei
Jeni Intro1 Bab08 Argumen Dari  Command LineiJeni Intro1 Bab08 Argumen Dari  Command Linei
Jeni Intro1 Bab08 Argumen Dari Command Linei
 
JENI-Intro1-Bab06-Struktur Kontrol.pdf
JENI-Intro1-Bab06-Struktur Kontrol.pdfJENI-Intro1-Bab06-Struktur Kontrol.pdf
JENI-Intro1-Bab06-Struktur Kontrol.pdf
 
Modul praktikum java pemrograman berorientasi objek
Modul praktikum java pemrograman berorientasi objekModul praktikum java pemrograman berorientasi objek
Modul praktikum java pemrograman berorientasi objek
 
modul6
modul6modul6
modul6
 
Struktur data
Struktur dataStruktur data
Struktur data
 
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
 

More from Individual Consultants

O T O M A S I P E N G A W A S R U M A H D E N G A N M E N G G U N A K A N...
O T O M A S I  P E N G A W A S  R U M A H  D E N G A N  M E N G G U N A K A N...O T O M A S I  P E N G A W A S  R U M A H  D E N G A N  M E N G G U N A K A N...
O T O M A S I P E N G A W A S R U M A H D E N G A N M E N G G U N A K A N...Individual Consultants
 
Sistem Penyadapan Intruder In The Darkness
Sistem  Penyadapan  Intruder In  The  DarknessSistem  Penyadapan  Intruder In  The  Darkness
Sistem Penyadapan Intruder In The DarknessIndividual Consultants
 
P R O S P E K T U S P E R U S A H A A N I K K I G R O U P D E N G A N C ...
P R O S P E K T U S  P E R U S A H A A N  I K K I  G R O U P  D E N G A N  C ...P R O S P E K T U S  P E R U S A H A A N  I K K I  G R O U P  D E N G A N  C ...
P R O S P E K T U S P E R U S A H A A N I K K I G R O U P D E N G A N C ...Individual Consultants
 
Jeni Web Programming Bab 16 App Case Study
Jeni Web Programming Bab 16 App Case StudyJeni Web Programming Bab 16 App Case Study
Jeni Web Programming Bab 16 App Case StudyIndividual Consultants
 
Jeni Web Programming Bab 15 J2 Ee Design Pattern
Jeni Web Programming Bab 15 J2 Ee Design PatternJeni Web Programming Bab 15 J2 Ee Design Pattern
Jeni Web Programming Bab 15 J2 Ee Design PatternIndividual Consultants
 
Jeni Web Programming Bab 5 Sql Dan Jdbc
Jeni Web Programming Bab 5 Sql Dan JdbcJeni Web Programming Bab 5 Sql Dan Jdbc
Jeni Web Programming Bab 5 Sql Dan JdbcIndividual Consultants
 
Jeni Web Programming Bab 10 Advanced Jsf
Jeni Web Programming Bab 10 Advanced JsfJeni Web Programming Bab 10 Advanced Jsf
Jeni Web Programming Bab 10 Advanced JsfIndividual Consultants
 
Jeni Web Programming Bab 8 Advanced Mvc
Jeni Web Programming Bab 8 Advanced MvcJeni Web Programming Bab 8 Advanced Mvc
Jeni Web Programming Bab 8 Advanced MvcIndividual Consultants
 
Jeni Web Programming Bab 3 Advanced Servlets
Jeni Web Programming Bab 3 Advanced ServletsJeni Web Programming Bab 3 Advanced Servlets
Jeni Web Programming Bab 3 Advanced ServletsIndividual Consultants
 
Jeni Web Programming Bab 2 Basic Servlets
Jeni Web Programming Bab 2 Basic ServletsJeni Web Programming Bab 2 Basic Servlets
Jeni Web Programming Bab 2 Basic ServletsIndividual Consultants
 
Jeni Web Programming Bab 1 Pengenalan Pemrograman Web
Jeni Web Programming Bab 1 Pengenalan Pemrograman WebJeni Web Programming Bab 1 Pengenalan Pemrograman Web
Jeni Web Programming Bab 1 Pengenalan Pemrograman WebIndividual Consultants
 

More from Individual Consultants (20)

24602905 Karsten Nohl
24602905  Karsten  Nohl24602905  Karsten  Nohl
24602905 Karsten Nohl
 
O T O M A S I P E N G A W A S R U M A H D E N G A N M E N G G U N A K A N...
O T O M A S I  P E N G A W A S  R U M A H  D E N G A N  M E N G G U N A K A N...O T O M A S I  P E N G A W A S  R U M A H  D E N G A N  M E N G G U N A K A N...
O T O M A S I P E N G A W A S R U M A H D E N G A N M E N G G U N A K A N...
 
Sistem Penyadapan Intruder In The Darkness
Sistem  Penyadapan  Intruder In  The  DarknessSistem  Penyadapan  Intruder In  The  Darkness
Sistem Penyadapan Intruder In The Darkness
 
P R O S P E K T U S P E R U S A H A A N I K K I G R O U P D E N G A N C ...
P R O S P E K T U S  P E R U S A H A A N  I K K I  G R O U P  D E N G A N  C ...P R O S P E K T U S  P E R U S A H A A N  I K K I  G R O U P  D E N G A N  C ...
P R O S P E K T U S P E R U S A H A A N I K K I G R O U P D E N G A N C ...
 
Jeni Web Programming Cover
Jeni Web Programming CoverJeni Web Programming Cover
Jeni Web Programming Cover
 
Jeni Web Programming Bab 16 App Case Study
Jeni Web Programming Bab 16 App Case StudyJeni Web Programming Bab 16 App Case Study
Jeni Web Programming Bab 16 App Case Study
 
Jeni Web Programming Bab 15 J2 Ee Design Pattern
Jeni Web Programming Bab 15 J2 Ee Design PatternJeni Web Programming Bab 15 J2 Ee Design Pattern
Jeni Web Programming Bab 15 J2 Ee Design Pattern
 
Jeni Web Programming Bab 5 Sql Dan Jdbc
Jeni Web Programming Bab 5 Sql Dan JdbcJeni Web Programming Bab 5 Sql Dan Jdbc
Jeni Web Programming Bab 5 Sql Dan Jdbc
 
Jeni Web Programming Bab 10 Advanced Jsf
Jeni Web Programming Bab 10 Advanced JsfJeni Web Programming Bab 10 Advanced Jsf
Jeni Web Programming Bab 10 Advanced Jsf
 
Jeni Web Programming Bab 9 Jsf
Jeni Web Programming Bab 9 JsfJeni Web Programming Bab 9 Jsf
Jeni Web Programming Bab 9 Jsf
 
Jeni Web Programming Bab 8 Advanced Mvc
Jeni Web Programming Bab 8 Advanced MvcJeni Web Programming Bab 8 Advanced Mvc
Jeni Web Programming Bab 8 Advanced Mvc
 
Jeni Web Programming Bab 7 Mvc Intro
Jeni Web Programming Bab 7 Mvc IntroJeni Web Programming Bab 7 Mvc Intro
Jeni Web Programming Bab 7 Mvc Intro
 
Jeni Web Programming Bab 4 Dasar Jsp
Jeni Web Programming Bab 4 Dasar JspJeni Web Programming Bab 4 Dasar Jsp
Jeni Web Programming Bab 4 Dasar Jsp
 
Jeni Web Programming Bab 3 Advanced Servlets
Jeni Web Programming Bab 3 Advanced ServletsJeni Web Programming Bab 3 Advanced Servlets
Jeni Web Programming Bab 3 Advanced Servlets
 
Jeni Web Programming Bab 2 Basic Servlets
Jeni Web Programming Bab 2 Basic ServletsJeni Web Programming Bab 2 Basic Servlets
Jeni Web Programming Bab 2 Basic Servlets
 
Jeni Web Programming Bab 1 Pengenalan Pemrograman Web
Jeni Web Programming Bab 1 Pengenalan Pemrograman WebJeni Web Programming Bab 1 Pengenalan Pemrograman Web
Jeni Web Programming Bab 1 Pengenalan Pemrograman Web
 
Jeni J2 Me Bab11 Topik Topik Tambahan
Jeni J2 Me Bab11 Topik Topik TambahanJeni J2 Me Bab11 Topik Topik Tambahan
Jeni J2 Me Bab11 Topik Topik Tambahan
 
Jeni J2 Me Bab10 Optional%20 Packages
Jeni J2 Me Bab10 Optional%20 PackagesJeni J2 Me Bab10 Optional%20 Packages
Jeni J2 Me Bab10 Optional%20 Packages
 
Jeni J2 Me Bab09 Optimisasi
Jeni J2 Me Bab09 OptimisasiJeni J2 Me Bab09 Optimisasi
Jeni J2 Me Bab09 Optimisasi
 
Jeni J2 Me Bab08 Web Services
Jeni J2 Me Bab08 Web ServicesJeni J2 Me Bab08 Web Services
Jeni J2 Me Bab08 Web Services
 

JENI_12_Exception

  • 1. J.E.N.I. BAB 12 Dasar Exception Handling 12.1 Tujuan Dalam bagian ini, kita akan mempelajari teknik yang dipakai dalam Java dalam menangani kondisi yang tidak biasa dalam menjalankan operasi normal dalam program. Teknik ini dinamakan exception handling. Pada akhir pembahasan, diharapkan pembaca dapat :  Mendefinisikan exception  Menangani exception menggunakan blok try-catch-finally 12.2 Apa itu Exception? Exception adalah sebuah peristiwa yang menjalankan alur proses normal pada program. Peristiwa ini biasanya berupa kesalahan(error) dari beberapa bentuk. Ini disebabkan program kita berakhir tidak normal. Beberapa contoh dari exception yang Anda mungkin jumpai pada latihan-latihan sebelumnya adalah: exception ArrayIndexOutOfBounds, yang terjadi jika kita mencoba mengakses elemen array yang tidak ada, atau NumberFormatException, yang terjadi ketika kita mencoba melalui parameter bukan angka dalam method Integer.parseInt. 12.3 Menangani Exception Untuk menangani exception dalam Java, kita gunakan blok try-catch-finally. Apa yang kita lakukan dalam program kita adalah kita menempatkan pernyataan yang mungkin menghasilkan exception dalam blok ini. Bentuk umum dari blok try-catch-finally adalah, try{ //tulis pernyataan yang dapat mengakibatkan exception //dalam blok ini } catch( <exceptionType1> <varName1> ){ //tulis aksi apa dari program Anda yang dijalankan jika ada //exception tipe tertentu terjadi } . . . Pengenalan Pemrograman 1 1
  • 2. J.E.N.I. catch( <exceptionTypen> <varNamen> ){ //tulis aksi apa dari program Anda yang dijalankan jika ada //exception tipe tertentu terjadi } finally{ //tambahkan kode terakhir di sini } Exception dilemparkan selama eksekusi dari blok try dapat ditangkap dan ditangani dalam blok catch. Kode dalam blok finally selalu di-eksekusi. Berikut ini adalah aspek kunci tentang sintak dari konstruksi try-catch-finally:  Notasi blok bersifat perintah  Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu blok finally.  Blok catch dan blok finally harus selalu muncul dalam konjungsi dengan blok try, dan diatas urutan  Blok try harus diikuti oleh paling sedikit satu blok catch ATAU satu blok finally, atau keduanya.  Setiap blok catch mendefinisikan sebuah penanganan exception. Header dari blok catch harus membawa satu argumen, dimana exception pada blok tersebut akan ditangani. Exception harus menjadi class pelempar atau satu dari subclassesnya. Gambar 1: Alur kejadian blok try-catch-finally Pengenalan Pemrograman 1 2
  • 3. J.E.N.I. Marilah mengambil contoh kode yang mencetak argumen kedua ketika kita mencoba menjalankan kode menggunakan argumen command-line. Perkirakan, tidak ada pengecekan dalam kode Anda untuk angka dari argumen dan kita hanya mengakses argumen kedua args[1] segera, kita akan mendapatkan exception berikut. Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1 at ExceptionExample.main(ExceptionExample.java:5) Untuk mencegah kejadian ini, kita dapat menempatkan kode ke dalam blok try-catch. Blok finally hanya sebagai pilihan lain saja. Sebagai contoh, kita tidak akan menggunakan blok finally. public class ExceptionExample { public static void main( String[] args ){ try{ System.out.println( args[1] ); }catch( ArrayIndexOutOfBoundsException exp ){ System.out.println("Exception caught!"); } } } Jadi kita akan menjalankan program lagi tanpa argumen, keluarannya akan menjadi, Exception caught! Pengenalan Pemrograman 1 3
  • 4. J.E.N.I. 12.4 Latihan 12.4.1 Menangkap Exception 1 Diberikan kode berikut: public class TestExceptions{ public static void main( String[] args ){ for( int i=0; true; i++ ){ System.out.println("args["+i+"]="+ args[i]); } } } Compile dan jalankan program TestExceptions. Keluarannya akan tampak seperti ini: javac TestExceptions one two three args[0]=one args[1]=two args[2]=three Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3 at TestExceptions.main(1.java:4) Ubah program TestExceptions untuk menangani exception, keluaran program setelah ditangkap exception-nya akan seperti ini: javac TestExceptions one two three args[0]=one args[1]=two args[2]=three Exception caught: java.lang.ArrayIndexOutOfBoundsException: 3 Quiting... 12.4.2 Menangkap Exception 2 Melakukan percobaan pada beberapa program yang telah Anda tulis adalah hal yang baik sebelum menghadapi exception. Karena pada program di atas Anda tidak menangkap exception, maka eksekusi dengan mudahnya berhenti mengeksekusi program Anda. Kembali kepada program diatas dan gunakan penanganan exception. Pengenalan Pemrograman 1 4