Senin, 21 Desember 2020

(Tugas) Exception Handling

 Apa itu Exception Handling?

Exception adalah sebuah peristiwa yang menjalankan alur proses normal pada program. Peristiwa ini bisaanya berupa kesalahan(error) dari beberapa bentuk. Ini disebabkan program kita berakhir tidak normal.

Menangani Exception

Untuk menangani exception dalam Java, kita gunakan blok try-catch-finally. Apa yang kita lakukan dalam program kita adalah kita menempatkan pernyataan yang mungkin menghasilkan exception dalam blok ini. Exception dilemparkan selama eksekusi dari blok try dapat ditangkap dan ditangani dalam blok catch. Kode dalam blok finally selalu di-eksekusi. Berikut ini adalah aspek kunci tentang 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 membawa satu argumen, dimana exception pada blok tersebut akan ditangani.

Contoh Exception Handling

Dalam contoh ini saya menggunakan source code algoritma dari sebuah permasalahan yang ada yang saya dapat dari github.

Permasalahan: 
https://leetcode.com/problems/coin-change/

Souce algoritma: 
https://github.com/williamfiset/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/dp/CoinChange.java

Dari source code di atas saya modifikasi sedikit sehingga beberapa line akan mengandung try-catch-finally. Penempatan try-catch-finally berada di tempat yang mengecek input dari pengguna sehingga jika terjadi Exception dapat terlihat.

Source Code:


Jika input yang diberikan sesuai akan menghasilkan output sebagai berikut


Jika input yang diberikan tidak sesuai akan menghasilkan output sebagai berikut


Juga ada beberapa kasus yang akan men-trigger beberapa exception handling. Sekian dari saya, semoga apa yang saya berikan bermanfaat.

~F

Tidak ada komentar:

Posting Komentar