pemrograman berorientasi object -...

Post on 03-Nov-2020

39 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Pemrograman Berorientasi Object

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

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

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)

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.

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.

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

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

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.

Throw

Disamping menangkap exception

Java juga dapat melempar sebuah exception.

Sintaks pelemparan exception cukup sederhana.

throw <exception object>;

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

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>

}

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

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

top related