pemrograman lanjut - hermantolle.com filesintak dari konstruksi try-catch-finally notasi blok...

33
Pemrograman Lanjut PTIIK - 2013 Exception Handling

Upload: trinhthu

Post on 05-Jun-2019

228 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

Pemrograman Lanjut

PTIIK - 2013

Exception Handling

Page 2: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

Objectives

Memahami konsep dan MendefinisikanException Handling

Menangani exception menggunakan blok try-catch-finally

Keyword throw dan throws Kategori Exceptions

2

Page 3: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

Exception Bugs dan error dalam sebuah program sangat

sering muncul meskipun program tersebutdibuat oleh programmer berkemampuantinggi.

Untuk menghindari pemborosan waktu padaproses error-checking, Java menyediakanmekanisme penanganan exception

Exception adalah singkatan dari Exceptional Events. Kesalahan (errors) yang terjadi saatruntime, menyebabkan gangguan pada alureksekusi program

3

Page 4: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

Exception Handling

Exception Handling adalah teknik yang dipakaidalam Java dalam menangani kondisi yang tidak biasa dalam menjalankan operasinormal dalam program

exception ArrayIndexOutOfBounds, yang terjadi jika kita mencoba mengakses elemenarray yang tidak ada

exception NumberFormatException, yang terjadi ketika kita mencoba melalui parameter bukan angka dalam method Integer.parseInt

4

Page 5: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

Menangani Exception

Untuk menangani exception dalam Java, kitagunakan blok try-catch-finally.

Apa yang kita lakukan dalam program kitaadalah kita menempatkan pernyataan yang mungkin menghasilkan exception dalam blok ini

5

Page 6: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

Bentuk Umum

Exception dilemparkan selama eksekusi dari blok try dapat ditangkap dan ditangani dalam blok catch.

Kode dalam blok finally selalu dieksekusi

6

Page 7: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

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 membawasatu argumen, dimana exception pada blok tersebutakan ditangani.

7

Page 8: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

Alur Kejadian try-catch-finally

8

Page 9: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

Contoh

Tulis kode berikut :

Untuk mengatasinya tambahkan seperti kode berikut:

9

Page 10: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

Latihan

Diberikan kode program berikut:

Ubah program TestExceptions untuk menanganiexception, keluaran program setelah ditangkapexception-nya akan seperti ini

10

Page 11: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

Error dan Exception Classes

Seluruh exceptions adalah subclasses, baik secara langsung maupun tidaklangsung, dari sebuah root class Throwable.

class Throwable terdapat dua kategoriumum : Error class dan Exception class

Exception class menunjukkan kondisiyang dapat diterima oleh user program

Error class digunakan oleh Java run-time untuk menangani error yang muncul padasaat dijalankan

11

Page 12: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

Error dan Exception Classes

Exception Class umumnya disebabkan olehbeberapa kesalahan pada kode program. Contoh dari exceptions adalah pembagian oleh 0 dan

error di luar jangkauan array Error Class umumnya di luar control user

karena kemunculannya disebabkan oleh run-time environment. contohnya adalah out of memory dan harddisk crash

12

Page 13: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

Contoh

Aksi tersebut pertama-tama akan menampilkandeskripsi exception yang terjadi

Kemudian akan ditampilkan stack trace yang mengindentifikasi method dimana exception terjadi

Pada bagian akhir, aksi default tersebut akanmenghentikan program secara paksa

13

Page 14: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

Try - Catch

Seperti yang telah dijelaskan sebelumnya, keyword try, catch dan finally digunakan dalammenangani bermacam tipe exception.

Keyword tersebut digunakan bersama, namunfinally bersifat opsional.

14

Page 15: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

Single Try-Catch

Gunakan contoh kode tersebut pada program DivByZero yang telah dibuat sebelumnya

15

Page 16: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

Multiple Try-Catch

Berikut adalah contoh kode yang menangani lebih dari satuexception :

Baris ke-4 akan menghasilkan kesalahan berupaArrayIndexOutOfBoundsException bilamana seorang user alpadalam memasukkan argument

Baris ke-5 akan menghasilkan kesalahan ArithmethicException jikapengguna memasukkan nilai 0 sebagai sebuah argument

16

Page 17: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

Pelajari apakah yang akan terjadi terhadapprogram bila argumen – argumen berikutdimasukkan oleh user : Tidak ada argument 1 0

17

Page 18: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

Nested Try-Catch

Penggunaan try bersarang diperbolehkan dalam pemrograman Java

18

Page 19: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

Pelajari apa yang akan terjadi pada program jikaargument – argument berikut dimasukkan : Tidak ada argumen 15 15 3 15 0

19

Page 20: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

Nested try-catch dengan method

Kode berikut menggunakan try bersarangtergabung dengan penggunaan method

20

Page 21: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

Keyword finally

Berikut ini cara penggunaan keyword finally :

Blok finally mengandung kode penanganansetelah penggunaan try dan catch.

Blok kode ini selalu tereksekusi walaupunsebuah exception terjadi atau tidak pada bloktry

21

Page 22: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

Keyword finally

Terdapat 4 kemungkinan skenario yang berbedadalam blok try-catch-finally. Pemaksaan keluar program terjadi bila control

program dipaksa untuk melewati blok try menggunakan return, continue ataupun break.

Sebuah penyelesaian normal terjadi jika try-catch-finally tereksekusi secara normal tanpa terjadi error apapun.

Kode program memiliki spesifikasi tersendiri dalamblok catch terhadap exception yang terjadi.

kebalikan dari skenario ketiga

22

Page 23: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

Keyword throw

Disamping menangkap exception, Java jugamengijinkan seorang user untuk melemparsebuah exception.

Sintax pelemparan exception cukup sederhana.

23

Page 24: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

Contoh

24

Page 25: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

Keyword Throws

Jika sebuah method dapat menyebabkansebuah exception namun tidak menangkapnya, maka digunakan keyword throws.

Aturan ini hanya berlaku pada checked exception

Berikut penulisan syntax menggunakan keyword throws :

25

Page 26: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

Keyword Throws

Sebuah method perlu untuk menangkap ataupun mendaftarseluruh exceptions yang mungkin terjadi, namun hal itu dapatmenghilangkan tipe Error, RuntimeException, ataupunsubclass-nya

Contoh berikut ini menunjukkan bahwa method myMethodtidak menangani ClassNotFoundException

26

Page 27: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

Kategori Exception Root class dari seluruh exception classes adalah Throwable class

27

Page 28: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

Aturan Exception

Catch lebih dari satu harus berurutan darisubclass ke superclass

28

Page 29: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

Checked dan Unchecked Exceptions

Checked exceptions adalah exception yang diperiksa oleh Java compiler.

Compiler memeriksa keseluruhan program apakah menangkap atau mendaftar exception yang terjadi dalam sintax throws.

Apabila checked exception tidak didaftarataupun ditangkap, maka compiler error akanditampilkan

29

Page 30: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

Checked dan Unchecked Exceptions

Unchecked exceptions tidak berupa compile-time checking dalam penanganan exceptions.

Fondasi dasar dari unchecked exception classes adalah Error, RuntimeException dansubclass-nya

30

Page 31: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

User Defined Exceptions

Meskipun beberapa exception classes terdapatpada package java.lang namun tidak mencukupiuntuk menampung seluruh kemungkinan tipeexception yang mungkin terjadi.

Dalam pembuatan tipe exception anda sendiri, anda hanya perlu untuk membuat sebuahextended class terhadap RuntimeExceptionclass, maupun Exception class lain

31

Page 32: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

Contoh

32

Page 33: Pemrograman Lanjut - hermantolle.com fileSintak dari Konstruksi try-catch-finally Notasi blok bersifat perintah Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu

[email protected] 331 834 734 / 088 160 127 40