SlideShare una empresa de Scribd logo
1 de 4
Descargar para leer sin conexión
Pemrog. Berorientasi Objek **, Pertemuan Ke-8
Noviyanto, ST Halaman 1
PENANGANAN EKSEPSI
Eksepsi adalah keadaan tidak normal yang muncul pada suatu bagian program pada
saat dijalankan. Penanganan eksepsi pada java membawa pengelolaan kesalahan
program saat dijalankan kedalam orientasi-objek. Eksepsi java adalah objek yang
menjelaskan suatu keadaan eksepsi yang muncul pada suatu bagian program.
Saat suatu keadaan eksepsi muncul, suatu objek exception dibuat dan dimasukkan ke
dalam method yang menyebabkan eksepsi. Method tersebut dapat dipilih untuk
menangani eksepsi berdasarkan tipe tertentu. Method ini juga menjaga agar tidak keluar
terlalu dini melalui suatu eksepsi, dan memiliki suatu blok program yang dijalankan tepat
sebelum suatu eksepsi menyebabkan metodenya kembali ke pemanggil.
Eksepsi dapat muncul tidak beraturan dalam suatu method, atau dapat juga dibuat
secara manual dan nantinya melaporkan sejumlah keadaan kesalahan ke method yang
memanggil.
Dasar-dasar penanganan Eksepsi
Penanganan eksepsi pada java diatur dengan lima kata kunci :
try,
catch,
throw,
throws dan
finally.
Pada dasarnya try digunakan untuk mengeksekusi suatu bagian program, dan jika
muncul kesalahan, sistem akan melakukan throw suatu eksepsi yang dapat anda catch
berdasarkan tipe eksepsinya, atau yang anda berikan finally dengan penangan default.
Berikut ini bentuk dasar bagian penanganan eksepsi :
try {
// Block of Code
}
catch (ExceptionType1 e) {
// Exception Handler for ExceptionType1
}
catch (ExceptionType2 e) {
// Exception Handler for ExceptionType2
throw (e); // re-throw the Exception
}
finally { }
Tipe Eksepsi
Dipuncak hirarki class eksepsi terdapat satu class yang disebut throwable. Class ini
digunakan untuk merepresentasikan semua keadaan eksepsi. Setiap ExceptionType
pada bentuk umum diatas adalah subclass dari throwable.
Dua subclass langsung throwable didefinisikan untuk membagi class throwable menjadi
dua cabang yang berbeda. Satu, class Exception, digunakan untuk keadaan eksepsi
yang harus ditangkap oleh program yang kita buat. Sedangkan yang lain diharapkan
dapat menangkap class yang kita subclasskan untuk menghasilkan keadaan eksepsi.
Cabang kedua throwable adalah class error, yang mendefinisikan keadaan yang tidak
diharapkan untuk ditangkap dalam lingkungan normal.
Throwable
Exception Error
Pemrog. Berorientasi Objek **, Pertemuan Ke-8
Noviyanto, ST Halaman 2
Eksepsi Yang Tidak Dapat Ditangkap
Obyek eksepsi secara otomatis dihasilkan oleh runtime java untuk menanggapi suatu
keadaan eksepsi. Perhatikan contoh berikut :
class Exc0 {
public static void main (String args[]) {
int d = 0;
int a = 42 / d;
}
}
Saat runtime java mencoba meng-eksekusi pembagian, akan terlihat bahwa
pembaginya adalah nol, dan akan membentuk objek eksepsi baru yang menyebabkan
program terhenti dan harus berurusan dengan keadaan kesalahan tersebut. Kita belum
mengkodekan suatu penangan eksepsi, sehingga penanganan eksepsi default akan
segera dijalankan.
Keluaran dari program diatas :
java.lang.ArithmeticExpression : /by zero
at Exc0.main (Exc0.java:4)
Berikut adalah contoh lainnya dari eksepsi :
class Exc1 {
static void subroutine() {
int d = 0;
int a = 42 / d;
}
public static void main (String args[]) {
Exc1.subroutine();
}
}
Output-nya :
Exception in thread main java.lang.ArithmeticException : / by zero
at Exc1.subroutine(Exc1.java :4)
at Exc1.main(Exc1.java : 7)
Try dan Catch
Kata kunci try digunakan untuk menentukan suatu blok program yang harus dijaga
terhadap semua eksepsi, setelah blok try masukkan bagian catch, yang menentukan
tipe eksepsi yang akan ditangkap. Perhatikan contoh berikut:
class Exc2 {
public static void main (String args[]) {
try {
int d = 0;
int a = 42 / d;
}
catch (ArithmeticException e) {
System.out.println( Division By Zero );
}
}
}
Outputnya:
C:Documents and SettingsnoviyantoMy Documents>java Exc2
Division By Zero
Pemrog. Berorientasi Objek **, Pertemuan Ke-8
Noviyanto, ST Halaman 3
Throw
Pernyataan throw digunakan untuk secara eksplisit melemparkan suatu eksepsi.
Pertama kita harus mendapatkan penanganan dalam suatu instance throwable, melalui
suatu parameter kedalam bagian catch, atau dengan membuatnya menggunakan
operator new. Bentuk umum pernyataan throw :
throw ThrowableInstance;
Aliran eksekusi akan segera terhenti setelah pernyataan throw, dan pernyataan
selanjutnya tidak akan dicapai. Blok try terdekat akan diperiksa untuk melihat jika telah
memiliki bagian catch yang cocok dengan tipe instance Throwable. Jika tidak ditemukan
yang cocok, maka pengaturan dipindahkan ke pernyataan tersebut. Jika tidak, maka
blok pernyataan try selanjutnya diperiksa, begitu seterusnya sampai penanganan
eksepsi terluar menghentikan program dan mencetak penelusuran semua tumpukan
sampai pernyataan throw. Contoh :
class throwDemo {
static void demoProc() {
try {
throw new NullPointerException( demo ); }
catch (NullPointerException e) {
System.out.println( caught inside demoproc );
throw e; }
}
public static void main (String args[]) {
try { demoProc(); }
catch (NullPointerException e) {
System.out.println( recaugt : + e); }
} }
Output :
caught inside demoproc
recaught : java.lang.NullPointerException : demo
Throws
Kata kunci throws digunakan untuk mengenali daftar eksepsi yang mungkin di-throw
oleh suatu method. Jika tipe eksepsinya adalah error, atau RuntimeException, atau
suatu subclassnya, aturan ini tidak berlaku, karena tidak diharapkan sebagai bagian
normal dari kerja program.
Jika suatu method secara eksplisit men-throws suatu intans dari Exception atau
subclassnya, diluar RuntimeException, kita harus mendeklarasikan tipenya dengan
pernyataan throws. ini mendefinisikan ulang deklarasi method sebelumnya dengan
sintaks sbb :
type method-name (arg-list) throws exception-list { }
Contoh :
class ThrowsDemo {
static void procedure () throws IllegalAccessException {
System.out.println( Inside Procedure );
throw new IllegalAccessException( demo );
}
public static void main(String args[]) {
try { procedure(); }
catch (IllegalAccessException e) {
System.out.println( caught + e); }
}
}
Output :
Inside procedure
Pemrog. Berorientasi Objek **, Pertemuan Ke-8
Noviyanto, ST Halaman 4
caught java.lang.IllegalAccessException : demo
Finally
Saat suatu eksepsi dilemparkan, alur program dalam suatu method membuat jalur yang
cenderung tidak linier melalui method tersebut, melompati baris-baris tertentu, bahkan
mungkin akan keluar sebelum waktunya pada kasus dimana tidak ada bagian catch
yang cocok. Kadang-kadang perlu dipastikan bahwa bagian program yang diberikan
akan berjalan, tidak perduli eksepsi apa yang terjadi dan ditangkap. Kata kunci finally
dapat digunakan untuk menentukan bagian program seperti itu.
Setiap try membutuhkan sekurang-kurangnya satu bagian catch atau finally yang cocok.
Jika kita tidak mendapatkan bagian catch yang cocok, maka bagian finally akan
dieksekusi sebelum akhir program, atau setiap kali suatu method akan kembali ke
pemanggilnya, melalui eksepsi yang tidak dapat ditangkap, atau melalui pernyataan
return, bagian finally akan dieksekusi sebelum kembali ke method kembali.
Berikut adalah contoh program yang menunjukkan beberapa method yang keluar
dengan berbagai cara, tidak satupun tanpa mengeksekusi bagian finally-nyA.
class finallyDemo {
static void procA() {
try { System.out.println( Inside procA.. );
throw new RuntimeException( Demo ); }
finally { System.out.println( procA is finally ); }
}
static void procB() {
try { System.out.println( Inside procB.. );
return; }
finally { System.out.println( procB is finally ); }
}
public static void main(String args[]) {
try { procA( ); }
catch (Exception e){ };
procB(); }
}
Output :
Inside procA..
procA is finally
Inside procB..
procB is finally

Más contenido relacionado

La actualidad más candente

Use case specification dan activity diagram [INTERNAL EDUCATIONAL PURPOSED]
Use case specification dan activity diagram [INTERNAL EDUCATIONAL PURPOSED]Use case specification dan activity diagram [INTERNAL EDUCATIONAL PURPOSED]
Use case specification dan activity diagram [INTERNAL EDUCATIONAL PURPOSED]Theo Pratama
 
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
 
Osi layer dan fungsinya
Osi layer dan fungsinyaOsi layer dan fungsinya
Osi layer dan fungsinyaMuhammad Putra
 
membuat function dalam mysql
membuat function dalam mysqlmembuat function dalam mysql
membuat function dalam mysqlsukangimpi
 
OOP - Exception
OOP - ExceptionOOP - Exception
OOP - ExceptionKuliahKita
 
Socket Programming UDP Echo Client Server (Python)
Socket Programming  UDP Echo Client Server  (Python)Socket Programming  UDP Echo Client Server  (Python)
Socket Programming UDP Echo Client Server (Python)Lusiana Diyan
 
Pemrograman Berorientasi Objek "Pengenalan JAVA"
Pemrograman Berorientasi Objek "Pengenalan JAVA"Pemrograman Berorientasi Objek "Pengenalan JAVA"
Pemrograman Berorientasi Objek "Pengenalan JAVA"Asnita Meydelia C K
 
Membangun aplikasi client server dengan java
Membangun aplikasi client server dengan javaMembangun aplikasi client server dengan java
Membangun aplikasi client server dengan javaEko Kurniawan Khannedy
 
Jaringan syaraf tiruan uas docs
Jaringan syaraf tiruan uas docsJaringan syaraf tiruan uas docs
Jaringan syaraf tiruan uas docsause labella
 
Administrasi-Sistem-Jaringan-Kelas-XI-pptx.pptx
Administrasi-Sistem-Jaringan-Kelas-XI-pptx.pptxAdministrasi-Sistem-Jaringan-Kelas-XI-pptx.pptx
Administrasi-Sistem-Jaringan-Kelas-XI-pptx.pptxglobalkomputer
 
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 perulangan dalam c++
Struktur perulangan dalam c++Struktur perulangan dalam c++
Struktur perulangan dalam c++Alvin Setiawan
 
Variabel Operator & Ekspresi - dasar visual basic bagian 5
Variabel Operator & Ekspresi - dasar visual basic bagian 5Variabel Operator & Ekspresi - dasar visual basic bagian 5
Variabel Operator & Ekspresi - dasar visual basic bagian 5Isya Ansyari
 

La actualidad más candente (20)

Access Point
Access PointAccess Point
Access Point
 
Use case specification dan activity diagram [INTERNAL EDUCATIONAL PURPOSED]
Use case specification dan activity diagram [INTERNAL EDUCATIONAL PURPOSED]Use case specification dan activity diagram [INTERNAL EDUCATIONAL PURPOSED]
Use case specification dan activity diagram [INTERNAL EDUCATIONAL PURPOSED]
 
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
 
Osi layer dan fungsinya
Osi layer dan fungsinyaOsi layer dan fungsinya
Osi layer dan fungsinya
 
membuat function dalam mysql
membuat function dalam mysqlmembuat function dalam mysql
membuat function dalam mysql
 
Ppt tik
Ppt  tikPpt  tik
Ppt tik
 
OOP - Exception
OOP - ExceptionOOP - Exception
OOP - Exception
 
Socket Programming UDP Echo Client Server (Python)
Socket Programming  UDP Echo Client Server  (Python)Socket Programming  UDP Echo Client Server  (Python)
Socket Programming UDP Echo Client Server (Python)
 
Pemrograman Berorientasi Objek "Pengenalan JAVA"
Pemrograman Berorientasi Objek "Pengenalan JAVA"Pemrograman Berorientasi Objek "Pengenalan JAVA"
Pemrograman Berorientasi Objek "Pengenalan JAVA"
 
Membangun aplikasi client server dengan java
Membangun aplikasi client server dengan javaMembangun aplikasi client server dengan java
Membangun aplikasi client server dengan java
 
2 alfabet dan string
2 alfabet dan string2 alfabet dan string
2 alfabet dan string
 
Fungsi (function)
Fungsi (function)Fungsi (function)
Fungsi (function)
 
Laporan PBO Modul 4
Laporan PBO Modul 4Laporan PBO Modul 4
Laporan PBO Modul 4
 
Jaringan syaraf tiruan uas docs
Jaringan syaraf tiruan uas docsJaringan syaraf tiruan uas docs
Jaringan syaraf tiruan uas docs
 
Administrasi-Sistem-Jaringan-Kelas-XI-pptx.pptx
Administrasi-Sistem-Jaringan-Kelas-XI-pptx.pptxAdministrasi-Sistem-Jaringan-Kelas-XI-pptx.pptx
Administrasi-Sistem-Jaringan-Kelas-XI-pptx.pptx
 
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 praktikum java pemrograman berorientasi objek
Modul praktikum java pemrograman berorientasi objekModul praktikum java pemrograman berorientasi objek
Modul praktikum java pemrograman berorientasi objek
 
Struktur perulangan dalam c++
Struktur perulangan dalam c++Struktur perulangan dalam c++
Struktur perulangan dalam c++
 
Variabel Operator & Ekspresi - dasar visual basic bagian 5
Variabel Operator & Ekspresi - dasar visual basic bagian 5Variabel Operator & Ekspresi - dasar visual basic bagian 5
Variabel Operator & Ekspresi - dasar visual basic bagian 5
 
Interupsi
InterupsiInterupsi
Interupsi
 

Destacado

8 mocion iu- medidas urgentes para reforzar la proteccion a los deudores hip...
8  mocion iu- medidas urgentes para reforzar la proteccion a los deudores hip...8  mocion iu- medidas urgentes para reforzar la proteccion a los deudores hip...
8 mocion iu- medidas urgentes para reforzar la proteccion a los deudores hip...Sergi Lluch Martín
 
8th alg -l8.3--april11
8th alg -l8.3--april118th alg -l8.3--april11
8th alg -l8.3--april11jdurst65
 
8º renascimento - 2015.docx - site
8º   renascimento - 2015.docx - site8º   renascimento - 2015.docx - site
8º renascimento - 2015.docx - siteprofcacocardozo
 
8. Estatus epistemológico de la educación
8. Estatus epistemológico de la educación8. Estatus epistemológico de la educación
8. Estatus epistemológico de la educaciónEpistemologo_San_Marcos
 
8th pre alg -jan8
8th pre alg -jan88th pre alg -jan8
8th pre alg -jan8jdurst65
 
8th plan
8th plan8th plan
8th plankdhenge
 
8 job satisfaction
8 job satisfaction8 job satisfaction
8 job satisfactionHarve Abella
 
PORQUE INVERTIR EN PERU ADQUISICIONES DE EMPRESAS Y OPORTUNIDADES DE INVERSIO...
PORQUE INVERTIR EN PERU ADQUISICIONES DE EMPRESAS Y OPORTUNIDADES DE INVERSIO...PORQUE INVERTIR EN PERU ADQUISICIONES DE EMPRESAS Y OPORTUNIDADES DE INVERSIO...
PORQUE INVERTIR EN PERU ADQUISICIONES DE EMPRESAS Y OPORTUNIDADES DE INVERSIO...INPECO - Invertir en Perú Consulting
 
8th Pre Alg--Dec14
8th Pre Alg--Dec148th Pre Alg--Dec14
8th Pre Alg--Dec14jdurst65
 
8th month dia
8th month dia8th month dia
8th month diaevcsike
 
8 muster2014 david campbell
8 muster2014 david campbell 8 muster2014 david campbell
8 muster2014 david campbell Muster2014
 
8th alg -april4
8th alg -april48th alg -april4
8th alg -april4jdurst65
 
HOW TO HACK FACEBOOK BY COMPUTER
HOW TO HACK FACEBOOK BY COMPUTER HOW TO HACK FACEBOOK BY COMPUTER
HOW TO HACK FACEBOOK BY COMPUTER June_Johnson
 
8 estimacion de consumo de insumos clínicos básicos 2009
8 estimacion de  consumo de insumos clínicos básicos 20098 estimacion de  consumo de insumos clínicos básicos 2009
8 estimacion de consumo de insumos clínicos básicos 2009SSMN
 
8 Reasons to Hire an Experienced Designer
8 Reasons to Hire an Experienced Designer8 Reasons to Hire an Experienced Designer
8 Reasons to Hire an Experienced DesignerMauve Print Management
 
8th PreAlg - L51--Jan19
8th PreAlg - L51--Jan198th PreAlg - L51--Jan19
8th PreAlg - L51--Jan19jdurst65
 

Destacado (20)

8 mocion iu- medidas urgentes para reforzar la proteccion a los deudores hip...
8  mocion iu- medidas urgentes para reforzar la proteccion a los deudores hip...8  mocion iu- medidas urgentes para reforzar la proteccion a los deudores hip...
8 mocion iu- medidas urgentes para reforzar la proteccion a los deudores hip...
 
8th alg -l8.3--april11
8th alg -l8.3--april118th alg -l8.3--april11
8th alg -l8.3--april11
 
8º renascimento - 2015.docx - site
8º   renascimento - 2015.docx - site8º   renascimento - 2015.docx - site
8º renascimento - 2015.docx - site
 
8m1finalsidinei
8m1finalsidinei8m1finalsidinei
8m1finalsidinei
 
8. Estatus epistemológico de la educación
8. Estatus epistemológico de la educación8. Estatus epistemológico de la educación
8. Estatus epistemológico de la educación
 
8th pre alg -jan8
8th pre alg -jan88th pre alg -jan8
8th pre alg -jan8
 
8th plan
8th plan8th plan
8th plan
 
8 job satisfaction
8 job satisfaction8 job satisfaction
8 job satisfaction
 
PORQUE INVERTIR EN PERU ADQUISICIONES DE EMPRESAS Y OPORTUNIDADES DE INVERSIO...
PORQUE INVERTIR EN PERU ADQUISICIONES DE EMPRESAS Y OPORTUNIDADES DE INVERSIO...PORQUE INVERTIR EN PERU ADQUISICIONES DE EMPRESAS Y OPORTUNIDADES DE INVERSIO...
PORQUE INVERTIR EN PERU ADQUISICIONES DE EMPRESAS Y OPORTUNIDADES DE INVERSIO...
 
8th Pre Alg--Dec14
8th Pre Alg--Dec148th Pre Alg--Dec14
8th Pre Alg--Dec14
 
8th month dia
8th month dia8th month dia
8th month dia
 
8 gl1
8 gl18 gl1
8 gl1
 
8 muster2014 david campbell
8 muster2014 david campbell 8 muster2014 david campbell
8 muster2014 david campbell
 
8th alg -april4
8th alg -april48th alg -april4
8th alg -april4
 
8 p2
8 p28 p2
8 p2
 
HOW TO HACK FACEBOOK BY COMPUTER
HOW TO HACK FACEBOOK BY COMPUTER HOW TO HACK FACEBOOK BY COMPUTER
HOW TO HACK FACEBOOK BY COMPUTER
 
8 estimacion de consumo de insumos clínicos básicos 2009
8 estimacion de  consumo de insumos clínicos básicos 20098 estimacion de  consumo de insumos clínicos básicos 2009
8 estimacion de consumo de insumos clínicos básicos 2009
 
8 nov
8 nov8 nov
8 nov
 
8 Reasons to Hire an Experienced Designer
8 Reasons to Hire an Experienced Designer8 Reasons to Hire an Experienced Designer
8 Reasons to Hire an Experienced Designer
 
8th PreAlg - L51--Jan19
8th PreAlg - L51--Jan198th PreAlg - L51--Jan19
8th PreAlg - L51--Jan19
 

Similar a OBJEK_EKSEPSIDANPENANGANNYA

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
 
Tugas praktek 3 Pemrograman Berorientasi Objek
Tugas praktek 3 Pemrograman Berorientasi ObjekTugas praktek 3 Pemrograman Berorientasi Objek
Tugas praktek 3 Pemrograman Berorientasi ObjekPungkas Soebarkah
 
Exception Handling
Exception HandlingException Handling
Exception HandlingDany Liu's
 
4. Materi Java Eclipse 4
4. Materi Java Eclipse 44. Materi Java Eclipse 4
4. Materi Java Eclipse 4Ismail Akbar
 
Jeni intro1-bab12-dasar exception handling
Jeni intro1-bab12-dasar exception handlingJeni intro1-bab12-dasar exception handling
Jeni intro1-bab12-dasar exception handlingKristanto Wijaya
 
Jeni Intro1 Bab12 Dasar Exception Handling
Jeni Intro1 Bab12 Dasar Exception HandlingJeni Intro1 Bab12 Dasar Exception Handling
Jeni Intro1 Bab12 Dasar Exception HandlingIndividual Consultants
 
Jeni Intro2 Bab02 Exception Dan Assertion
Jeni Intro2 Bab02 Exception Dan AssertionJeni Intro2 Bab02 Exception Dan Assertion
Jeni Intro2 Bab02 Exception Dan AssertionIndividual Consultants
 
1 exception handling
1 exception handling1 exception handling
1 exception handlingFajar Baskoro
 
pbo 8 ervan
pbo 8 ervanpbo 8 ervan
pbo 8 ervanaris
 
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] 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
 

Similar a OBJEK_EKSEPSIDANPENANGANNYA (20)

Java7
Java7Java7
Java7
 
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
 
14741 9 exception & assertion
14741 9 exception & assertion14741 9 exception & assertion
14741 9 exception & assertion
 
Tugas praktek 3 Pemrograman Berorientasi Objek
Tugas praktek 3 Pemrograman Berorientasi ObjekTugas praktek 3 Pemrograman Berorientasi Objek
Tugas praktek 3 Pemrograman Berorientasi Objek
 
Exception Handling
Exception HandlingException Handling
Exception Handling
 
4. Materi Java Eclipse 4
4. Materi Java Eclipse 44. Materi Java Eclipse 4
4. Materi Java Eclipse 4
 
Jeni intro1-bab12-dasar exception handling
Jeni intro1-bab12-dasar exception handlingJeni intro1-bab12-dasar exception handling
Jeni intro1-bab12-dasar exception handling
 
Jeni Intro1 Bab12 Dasar Exception Handling
Jeni Intro1 Bab12 Dasar Exception HandlingJeni Intro1 Bab12 Dasar Exception Handling
Jeni Intro1 Bab12 Dasar Exception Handling
 
Jeni Intro2 Bab02 Exception Dan Assertion
Jeni Intro2 Bab02 Exception Dan AssertionJeni Intro2 Bab02 Exception Dan Assertion
Jeni Intro2 Bab02 Exception Dan Assertion
 
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_
 
1 exception handling
1 exception handling1 exception handling
1 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
 
6497 13 penanganan pesan exception
6497 13 penanganan pesan exception6497 13 penanganan pesan exception
6497 13 penanganan pesan exception
 
pbo 8 ervan
pbo 8 ervanpbo 8 ervan
pbo 8 ervan
 
Laporan pboii 2yosa
Laporan pboii 2yosaLaporan pboii 2yosa
Laporan pboii 2yosa
 
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] Pertemuan 10 - Exception & Error Handling
[PBO] Pertemuan 10 - Exception & Error Handling[PBO] Pertemuan 10 - Exception & Error Handling
[PBO] Pertemuan 10 - Exception & Error Handling
 
16. error handling
16. error handling16. error handling
16. error handling
 

OBJEK_EKSEPSIDANPENANGANNYA

  • 1. Pemrog. Berorientasi Objek **, Pertemuan Ke-8 Noviyanto, ST Halaman 1 PENANGANAN EKSEPSI Eksepsi adalah keadaan tidak normal yang muncul pada suatu bagian program pada saat dijalankan. Penanganan eksepsi pada java membawa pengelolaan kesalahan program saat dijalankan kedalam orientasi-objek. Eksepsi java adalah objek yang menjelaskan suatu keadaan eksepsi yang muncul pada suatu bagian program. Saat suatu keadaan eksepsi muncul, suatu objek exception dibuat dan dimasukkan ke dalam method yang menyebabkan eksepsi. Method tersebut dapat dipilih untuk menangani eksepsi berdasarkan tipe tertentu. Method ini juga menjaga agar tidak keluar terlalu dini melalui suatu eksepsi, dan memiliki suatu blok program yang dijalankan tepat sebelum suatu eksepsi menyebabkan metodenya kembali ke pemanggil. Eksepsi dapat muncul tidak beraturan dalam suatu method, atau dapat juga dibuat secara manual dan nantinya melaporkan sejumlah keadaan kesalahan ke method yang memanggil. Dasar-dasar penanganan Eksepsi Penanganan eksepsi pada java diatur dengan lima kata kunci : try, catch, throw, throws dan finally. Pada dasarnya try digunakan untuk mengeksekusi suatu bagian program, dan jika muncul kesalahan, sistem akan melakukan throw suatu eksepsi yang dapat anda catch berdasarkan tipe eksepsinya, atau yang anda berikan finally dengan penangan default. Berikut ini bentuk dasar bagian penanganan eksepsi : try { // Block of Code } catch (ExceptionType1 e) { // Exception Handler for ExceptionType1 } catch (ExceptionType2 e) { // Exception Handler for ExceptionType2 throw (e); // re-throw the Exception } finally { } Tipe Eksepsi Dipuncak hirarki class eksepsi terdapat satu class yang disebut throwable. Class ini digunakan untuk merepresentasikan semua keadaan eksepsi. Setiap ExceptionType pada bentuk umum diatas adalah subclass dari throwable. Dua subclass langsung throwable didefinisikan untuk membagi class throwable menjadi dua cabang yang berbeda. Satu, class Exception, digunakan untuk keadaan eksepsi yang harus ditangkap oleh program yang kita buat. Sedangkan yang lain diharapkan dapat menangkap class yang kita subclasskan untuk menghasilkan keadaan eksepsi. Cabang kedua throwable adalah class error, yang mendefinisikan keadaan yang tidak diharapkan untuk ditangkap dalam lingkungan normal. Throwable Exception Error
  • 2. Pemrog. Berorientasi Objek **, Pertemuan Ke-8 Noviyanto, ST Halaman 2 Eksepsi Yang Tidak Dapat Ditangkap Obyek eksepsi secara otomatis dihasilkan oleh runtime java untuk menanggapi suatu keadaan eksepsi. Perhatikan contoh berikut : class Exc0 { public static void main (String args[]) { int d = 0; int a = 42 / d; } } Saat runtime java mencoba meng-eksekusi pembagian, akan terlihat bahwa pembaginya adalah nol, dan akan membentuk objek eksepsi baru yang menyebabkan program terhenti dan harus berurusan dengan keadaan kesalahan tersebut. Kita belum mengkodekan suatu penangan eksepsi, sehingga penanganan eksepsi default akan segera dijalankan. Keluaran dari program diatas : java.lang.ArithmeticExpression : /by zero at Exc0.main (Exc0.java:4) Berikut adalah contoh lainnya dari eksepsi : class Exc1 { static void subroutine() { int d = 0; int a = 42 / d; } public static void main (String args[]) { Exc1.subroutine(); } } Output-nya : Exception in thread main java.lang.ArithmeticException : / by zero at Exc1.subroutine(Exc1.java :4) at Exc1.main(Exc1.java : 7) Try dan Catch Kata kunci try digunakan untuk menentukan suatu blok program yang harus dijaga terhadap semua eksepsi, setelah blok try masukkan bagian catch, yang menentukan tipe eksepsi yang akan ditangkap. Perhatikan contoh berikut: class Exc2 { public static void main (String args[]) { try { int d = 0; int a = 42 / d; } catch (ArithmeticException e) { System.out.println( Division By Zero ); } } } Outputnya: C:Documents and SettingsnoviyantoMy Documents>java Exc2 Division By Zero
  • 3. Pemrog. Berorientasi Objek **, Pertemuan Ke-8 Noviyanto, ST Halaman 3 Throw Pernyataan throw digunakan untuk secara eksplisit melemparkan suatu eksepsi. Pertama kita harus mendapatkan penanganan dalam suatu instance throwable, melalui suatu parameter kedalam bagian catch, atau dengan membuatnya menggunakan operator new. Bentuk umum pernyataan throw : throw ThrowableInstance; Aliran eksekusi akan segera terhenti setelah pernyataan throw, dan pernyataan selanjutnya tidak akan dicapai. Blok try terdekat akan diperiksa untuk melihat jika telah memiliki bagian catch yang cocok dengan tipe instance Throwable. Jika tidak ditemukan yang cocok, maka pengaturan dipindahkan ke pernyataan tersebut. Jika tidak, maka blok pernyataan try selanjutnya diperiksa, begitu seterusnya sampai penanganan eksepsi terluar menghentikan program dan mencetak penelusuran semua tumpukan sampai pernyataan throw. Contoh : class throwDemo { static void demoProc() { try { throw new NullPointerException( demo ); } catch (NullPointerException e) { System.out.println( caught inside demoproc ); throw e; } } public static void main (String args[]) { try { demoProc(); } catch (NullPointerException e) { System.out.println( recaugt : + e); } } } Output : caught inside demoproc recaught : java.lang.NullPointerException : demo Throws Kata kunci throws digunakan untuk mengenali daftar eksepsi yang mungkin di-throw oleh suatu method. Jika tipe eksepsinya adalah error, atau RuntimeException, atau suatu subclassnya, aturan ini tidak berlaku, karena tidak diharapkan sebagai bagian normal dari kerja program. Jika suatu method secara eksplisit men-throws suatu intans dari Exception atau subclassnya, diluar RuntimeException, kita harus mendeklarasikan tipenya dengan pernyataan throws. ini mendefinisikan ulang deklarasi method sebelumnya dengan sintaks sbb : type method-name (arg-list) throws exception-list { } Contoh : class ThrowsDemo { static void procedure () throws IllegalAccessException { System.out.println( Inside Procedure ); throw new IllegalAccessException( demo ); } public static void main(String args[]) { try { procedure(); } catch (IllegalAccessException e) { System.out.println( caught + e); } } } Output : Inside procedure
  • 4. Pemrog. Berorientasi Objek **, Pertemuan Ke-8 Noviyanto, ST Halaman 4 caught java.lang.IllegalAccessException : demo Finally Saat suatu eksepsi dilemparkan, alur program dalam suatu method membuat jalur yang cenderung tidak linier melalui method tersebut, melompati baris-baris tertentu, bahkan mungkin akan keluar sebelum waktunya pada kasus dimana tidak ada bagian catch yang cocok. Kadang-kadang perlu dipastikan bahwa bagian program yang diberikan akan berjalan, tidak perduli eksepsi apa yang terjadi dan ditangkap. Kata kunci finally dapat digunakan untuk menentukan bagian program seperti itu. Setiap try membutuhkan sekurang-kurangnya satu bagian catch atau finally yang cocok. Jika kita tidak mendapatkan bagian catch yang cocok, maka bagian finally akan dieksekusi sebelum akhir program, atau setiap kali suatu method akan kembali ke pemanggilnya, melalui eksepsi yang tidak dapat ditangkap, atau melalui pernyataan return, bagian finally akan dieksekusi sebelum kembali ke method kembali. Berikut adalah contoh program yang menunjukkan beberapa method yang keluar dengan berbagai cara, tidak satupun tanpa mengeksekusi bagian finally-nyA. class finallyDemo { static void procA() { try { System.out.println( Inside procA.. ); throw new RuntimeException( Demo ); } finally { System.out.println( procA is finally ); } } static void procB() { try { System.out.println( Inside procB.. ); return; } finally { System.out.println( procB is finally ); } } public static void main(String args[]) { try { procA( ); } catch (Exception e){ }; procB(); } } Output : Inside procA.. procA is finally Inside procB.. procB is finally