pemrograman berorientasi object -...

16
Pemrograman Berorientasi Object

Upload: others

Post on 03-Nov-2020

37 views

Category:

Documents


0 download

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

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

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

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

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

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

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

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

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

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
Page 11: Pemrograman Berorientasi Object - Gunadarmamiftah.staff.gunadarma.ac.id/Downloads/files/29161/8.+exception+handling.pdfMenangani Exception Untuk menangani exception dalam Java, kita

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

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

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

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

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