pemrograman berorientasi object -...
TRANSCRIPT
![Page 1: Pemrograman Berorientasi Object - Gunadarmamiftah.staff.gunadarma.ac.id/Downloads/files/29161/8.+exception+handling.pdfMenangani Exception Untuk menangani exception dalam Java, kita](https://reader037.vdocuments.mx/reader037/viewer/2022100223/607e2dd2fa65ad0b030301c4/html5/thumbnails/1.jpg)
Pemrograman Berorientasi Object
![Page 2: Pemrograman Berorientasi Object - Gunadarmamiftah.staff.gunadarma.ac.id/Downloads/files/29161/8.+exception+handling.pdfMenangani Exception Untuk menangani exception dalam Java, kita](https://reader037.vdocuments.mx/reader037/viewer/2022100223/607e2dd2fa65ad0b030301c4/html5/thumbnails/2.jpg)
Apa itu Exception? Singkatan dari Exceptional Events.
Kesalahan (errors) yang terjadi saat runtime, menyebabkan gangguan pada alur eksekusi program.
Contoh
Error pembagian 0
Mengakses elemen di luar jangkauan sebuah array, input yang tidak benar
Membuka file yang tidak ada.
Pada dasarnya, Exception merupakan subkelas dari kelas java.lang.Throwable
![Page 3: Pemrograman Berorientasi Object - Gunadarmamiftah.staff.gunadarma.ac.id/Downloads/files/29161/8.+exception+handling.pdfMenangani Exception Untuk menangani exception dalam Java, kita](https://reader037.vdocuments.mx/reader037/viewer/2022100223/607e2dd2fa65ad0b030301c4/html5/thumbnails/3.jpg)
Perbedaan antara Class Error dan ClassException di java
Selain class Exception, java.lang.Throwable juga memilikisubclass yaitu class Error
Error Class Untuk menangani error yang muncul pada saat dijalankan ( run-time error) dan Kemunculannya di luar control user disebabkan oleh run-time environment Contoh : out of memory, harddisk crash
Exception class Menunjukkan kondisi yang dapat diterima oleh user program.Umumnya disebabkan oleh beberapa kesalahan pada kode program
![Page 4: Pemrograman Berorientasi Object - Gunadarmamiftah.staff.gunadarma.ac.id/Downloads/files/29161/8.+exception+handling.pdfMenangani Exception Untuk menangani exception dalam Java, kita](https://reader037.vdocuments.mx/reader037/viewer/2022100223/607e2dd2fa65ad0b030301c4/html5/thumbnails/4.jpg)
Contoh : Eksepsi yg tidak dapat ditangkap
class Exc0 {
public static void main (String args[]) {
int d = 0;
int a = 42 / d;
}
}
belum mengkodekan suatu penangan eksepsi, sehingga penanganan eksepsidefault akan segera dijalankan. Keluaran dari program diatasjava.lang.ArithmeticExpression : /by zeroat Exc0.main (Exc0.java:4)
![Page 5: Pemrograman Berorientasi Object - Gunadarmamiftah.staff.gunadarma.ac.id/Downloads/files/29161/8.+exception+handling.pdfMenangani Exception Untuk menangani exception dalam Java, kita](https://reader037.vdocuments.mx/reader037/viewer/2022100223/607e2dd2fa65ad0b030301c4/html5/thumbnails/5.jpg)
Menangani Exception
Untuk menangani exception dalam Java, kita gunakanblok try-catch-finally.
Pada dasarnya try digunakan untuk mengeksekusisuatu bagian program, dan jika muncul kesalahan,sistem akan melakukan throw suatu eksepsi yangdapat anda catch berdasarkan tipe eksepsinya, atauyang anda berikan finally dengan penangan default.
![Page 6: Pemrograman Berorientasi Object - Gunadarmamiftah.staff.gunadarma.ac.id/Downloads/files/29161/8.+exception+handling.pdfMenangani Exception Untuk menangani exception dalam Java, kita](https://reader037.vdocuments.mx/reader037/viewer/2022100223/607e2dd2fa65ad0b030301c4/html5/thumbnails/6.jpg)
try{
//tulis pernyataan yang dapat mengakibatkan exception
//dalam blok ini
}
catch( <exceptionType 1> <varName1> ){
//tulis aksi apa dari program Anda yang dijalankan jika ada
//exception tipe tertentu terjadi
}
. . .
catch( <exceptionType N> <varName N> ){
//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.
![Page 7: Pemrograman Berorientasi Object - Gunadarmamiftah.staff.gunadarma.ac.id/Downloads/files/29161/8.+exception+handling.pdfMenangani Exception Untuk menangani exception dalam Java, kita](https://reader037.vdocuments.mx/reader037/viewer/2022100223/607e2dd2fa65ad0b030301c4/html5/thumbnails/7.jpg)
Try dan Catch Kata kunci try digunakan untuk menentukan suatu blok program yang
harus dijaga terhadap semua eksepsi, setelah blok try masukkan bagiancatch, yang menentukan tipe eksepsi yang akan ditangkap.
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:
Division By Zero
![Page 8: Pemrograman Berorientasi Object - Gunadarmamiftah.staff.gunadarma.ac.id/Downloads/files/29161/8.+exception+handling.pdfMenangani Exception Untuk menangani exception dalam Java, kita](https://reader037.vdocuments.mx/reader037/viewer/2022100223/607e2dd2fa65ad0b030301c4/html5/thumbnails/8.jpg)
Finally
Blok finally mengandung kode penanganan setelahpenggunaan try dan catch
Blok kode ini selalu tereksekusi walaupun sebuah exception terjadi atau tidak pada blok try.
Blok kode tersebut juga akan menghasilkan nilai true meskipun return, continue ataupun break tereksekusi
![Page 9: Pemrograman Berorientasi Object - Gunadarmamiftah.staff.gunadarma.ac.id/Downloads/files/29161/8.+exception+handling.pdfMenangani Exception Untuk menangani exception dalam Java, kita](https://reader037.vdocuments.mx/reader037/viewer/2022100223/607e2dd2fa65ad0b030301c4/html5/thumbnails/9.jpg)
aspek kunci tentang sintak dari konstruksi try-catch-finally: Notasi blok bersifat perintah
Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satublok finally.
Blok catch dan blok finally harus selalu muncul dalam konjungsidengan blok try, dan diatas urutan Blok try harus diikuti oleh palingsedikit satu blok catch ATAU satu blok finally, atau keduanya.
Setiap blok catch mendefinisikan sebuah penanganan exception.Header dari blok catch harus membawa satu argumen, dimanaexception pada blok tersebut akan ditangani. Exception harus menjadiclass pelempar atau satu dari subclassesnya.
![Page 10: Pemrograman Berorientasi Object - Gunadarmamiftah.staff.gunadarma.ac.id/Downloads/files/29161/8.+exception+handling.pdfMenangani Exception Untuk menangani exception dalam Java, kita](https://reader037.vdocuments.mx/reader037/viewer/2022100223/607e2dd2fa65ad0b030301c4/html5/thumbnails/10.jpg)
![Page 11: Pemrograman Berorientasi Object - Gunadarmamiftah.staff.gunadarma.ac.id/Downloads/files/29161/8.+exception+handling.pdfMenangani Exception Untuk menangani exception dalam Java, kita](https://reader037.vdocuments.mx/reader037/viewer/2022100223/607e2dd2fa65ad0b030301c4/html5/thumbnails/11.jpg)
Throw
Disamping menangkap exception
Java juga dapat melempar sebuah exception.
Sintaks pelemparan exception cukup sederhana.
throw <exception object>;
![Page 12: Pemrograman Berorientasi Object - Gunadarmamiftah.staff.gunadarma.ac.id/Downloads/files/29161/8.+exception+handling.pdfMenangani Exception Untuk menangani exception dalam Java, kita](https://reader037.vdocuments.mx/reader037/viewer/2022100223/607e2dd2fa65ad0b030301c4/html5/thumbnails/12.jpg)
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
![Page 13: Pemrograman Berorientasi Object - Gunadarmamiftah.staff.gunadarma.ac.id/Downloads/files/29161/8.+exception+handling.pdfMenangani Exception Untuk menangani exception dalam Java, kita](https://reader037.vdocuments.mx/reader037/viewer/2022100223/607e2dd2fa65ad0b030301c4/html5/thumbnails/13.jpg)
Throws
Sebuah method dapat menyebabkan sebuah exception namun tidak menangkapnya, maka digunakan keyword throws.
Aturan ini hanya berlaku pada checked exception.
Berikut ini penulisan syntax menggunakan keyword throws :
<type> <methodName> (<parameterList>)
throws <exceptionList> {
<methodBody>
}
![Page 14: Pemrograman Berorientasi Object - Gunadarmamiftah.staff.gunadarma.ac.id/Downloads/files/29161/8.+exception+handling.pdfMenangani Exception Untuk menangani exception dalam Java, kita](https://reader037.vdocuments.mx/reader037/viewer/2022100223/607e2dd2fa65ad0b030301c4/html5/thumbnails/14.jpg)
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
caught java.lang.IllegalAccessException : demo
![Page 15: Pemrograman Berorientasi Object - Gunadarmamiftah.staff.gunadarma.ac.id/Downloads/files/29161/8.+exception+handling.pdfMenangani Exception Untuk menangani exception dalam Java, kita](https://reader037.vdocuments.mx/reader037/viewer/2022100223/607e2dd2fa65ad0b030301c4/html5/thumbnails/15.jpg)
contoh program yang menunjukkan beberapa method yang keluar denganberbagai 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
![Page 16: Pemrograman Berorientasi Object - Gunadarmamiftah.staff.gunadarma.ac.id/Downloads/files/29161/8.+exception+handling.pdfMenangani Exception Untuk menangani exception dalam Java, kita](https://reader037.vdocuments.mx/reader037/viewer/2022100223/607e2dd2fa65ad0b030301c4/html5/thumbnails/16.jpg)