Memahami Contoh Penggunaan Blok Finally Pada Exception Handling Program Java
Hallo para agan, kali ini admin mau menulis mengenai contoh penggunaan blok finally pada exception handling. Sebelumnya sudah di bahas mengenai blok try, catch dan contohnya. Satu poin penting yang perlu diingat adalah pernyataan dalam blok finally akan selalu dieksekusi, tidak perduli apakah suatu exception terjadi ataupun tidak.
Jadi ketika anda menginginkan blok kode yang akan selalu dijalankan oleh program Java terlepas dari ada atau tidak adanya exception, maka blok finally adalah tempat yang tepat bagi anda untuk melakukan tujuan tersebut.
Secara sederhana, syntax dari finally adalah sebagai berikut:
Terdapat lima poin penting yang harus anda pahami dari blok finally ini, diantaranya adalah:
Jadi, ketika pernyataan-pernyataan dalam blok try melemparkan exception dan kemudian ditangkap oleh blok catch, maka kode dalam blok finally akan dieksekusi. Tidak hanya itu, meskipun tidak ada exception yang terlempar atau tertangkap, kode di blok finally akan tetap dieksekusi.
Finally juga akan mengeksekusi pernyataan di dalam bloknya bahkan ketika terdapat pernyataan return sebelum mencapai blok finally tersebut.
Contoh:
Output:
Ini adalah pernyataan dalam blok finally
Pernyataan ini dieksekusi walaupun blok try memiliki pernyataan return
Ini adalah pernyataan return dalam blok try
Berikut ini adalah contoh ketika class hanya menggunakan blok try dan finally saja.
Contoh:
Output:
Ini pernyataan di dalam blok try
Ini pernyataan di dalam blok finally
a) Contoh method System.exit() terdapat pada blok try
Output:
Pernyataan try dieksekusi
b) Contoh method System.exit() terdapat pada blok catch
Output:
Pernyataan try dieksekusi
Exception terjadi
Sekarang anda bisa membandingkan sendiri ketika tidak menggunakan method System.exit() untuk lebih memahaminya.
Berikut ini adalah contoh ketika method yang melemparkan dan tidak melemparkan exception menggunakan blok try, catch, dan finally.
Contoh:
Contoh output:
Pernyataan pada line 7 dieksekusi
Exception yang terlempar dari method melemparkanException telah ditangkap oleh blok catch pada line 26
Pernyataan dalam blok finally pada line 17 dieksekusi
Exception yang terlempar dari blok catch pada line 13 ditangani di main method
Method tidakMelemparkanException dijalankan
Pernyataan dalam blok finally pada line 30 dieksekusi
Akhir dari method tidakMelemparkanException
Demikianlah penjelasan mengenai contoh penggunaan blok finally pada exception handling program Java. Yang terpenting adalah pemahaman konsepnya sebagai dasar. Semoga bisa membantu anda yang sedang belajar pemograman Java.
Tapi, ada satu kasus yang bisa menyebabkan blok finally tidak dieksekusi,yaitu pada saat program keluar lebih awal dari blok try dengan memanggil method System.exit.
Jadi ketika anda menginginkan blok kode yang akan selalu dijalankan oleh program Java terlepas dari ada atau tidak adanya exception, maka blok finally adalah tempat yang tepat bagi anda untuk melakukan tujuan tersebut.
Secara sederhana, syntax dari finally adalah sebagai berikut:
try { pernyataan-pernyataan; } catch (Exception ex) { penanganan ex; } finally { pernyataanFinally; }
5 Hal Penting Yang Harus Diketahui Dari Blok finally
Terdapat lima poin penting yang harus anda pahami dari blok finally ini, diantaranya adalah:
- Ketika anda menggunakan blok finally maka anda juga harus menggunakan blok try. Ini adalah pasangan yang tidak dapat dipisahkan.
- Penggunaan blok finally tidak wajib pada exception handling, tapi ini merupakan pilihan bila blok try-catch tidak cukup untuk menyelesaikan masalah. Pernyataan pada blok finally akan selalu dijalankan setelah eksekusi dari blok try.
- Blok catch akan dieksekusi lebih dahulu bila terjadi exception pada blok try. Namun, bila tidak ada exception maka blok catch akan diabaikan dan pernyataan pada blok finally akan dieksekusi.
- Exception pada blok finally dapat ditindaklanjuti sama persis dengan exception lainnya.
- Bila blok try memiliki pernyataan seperti break, continue atau return maka pernyataan dalam blok finally akan tetap dieksekusi.
Jadi, ketika pernyataan-pernyataan dalam blok try melemparkan exception dan kemudian ditangkap oleh blok catch, maka kode dalam blok finally akan dieksekusi. Tidak hanya itu, meskipun tidak ada exception yang terlempar atau tertangkap, kode di blok finally akan tetap dieksekusi.
Ketika blok finally digunakan maka blok catch bisa saja diabaikan.
Blok finally Dengan Blok try Yang Memiliki Pernyataan return
Finally juga akan mengeksekusi pernyataan di dalam bloknya bahkan ketika terdapat pernyataan return sebelum mencapai blok finally tersebut.
Contoh:
public class try_return_finally { public static String myMethod() { try { return "Ini adalah pernyataan return dalam blok try"; } finally { System.err.println("Ini adalah pernyataan dalam blok finally"); System.err.println("Pernyataan ini dieksekusi walaupun blok try memiliki pernyataan return"); } } public static void main(String args[]) { System.out.println(myMethod()); } }
Output:
Ini adalah pernyataan dalam blok finally
Pernyataan ini dieksekusi walaupun blok try memiliki pernyataan return
Ini adalah pernyataan return dalam blok try
Blok try dan finally Tanpa Menggunakan Blok catch
Berikut ini adalah contoh ketika class hanya menggunakan blok try dan finally saja.
Contoh:
public class finally_tanpa_blok_catch { public static void main(String[] args) { try { System.out.println("Ini pernyataan di dalam blok try"); } finally{ System.err.println("Ini pernyataan di dalam blok finally"); } } }
Output:
Ini pernyataan di dalam blok try
Ini pernyataan di dalam blok finally
Contoh Blok try, catch, finally dan Method System.exit()
Method System.exit() akan menghentikan thread program, sehingga pernyataan setelahnya dan juga pernyataan dalam blok finally tidak akan dieksekusi.a) Contoh method System.exit() terdapat pada blok try
public class try_system_exit_finally { public static void main(String[] args) { try{ lemparkanException(); } catch (Exception ex){ System.err.println("Exception yang terlempar " + "dari blok catch ditangani di method main"); } } public static void lemparkanException() throws Exception{ try{ System.out.println("Pernyataan try dieksekusi"); System.exit(0);//Method ini akan menghentikan thread throw new Exception(); } catch (Exception ex){ System.err.println("Exception terjadi"); throw ex;//exception ini ditangani di method main } finally{ System.err.println("Pernyataan finally dieksekusi"); } } }
Output:
Pernyataan try dieksekusi
b) Contoh method System.exit() terdapat pada blok catch
public class catch_system_exit_finally { public static void main(String[] args) { try{ lemparkanException(); } catch (Exception ex){ System.err.println("Exception yang terlempar " + "dari blok catch ditangani di method main"); } } public static void lemparkanException() throws Exception{ try{ System.out.println("Pernyataan try dieksekusi"); throw new Exception(); } catch (Exception ex){ System.err.println("Exception terjadi"); System.exit(0);//Method ini akan menghentikan thread throw ex;//exception ini ditangani di method main } finally{ System.err.println("Pernyataan finally dieksekusi"); } } }
Output:
Pernyataan try dieksekusi
Exception terjadi
Sekarang anda bisa membandingkan sendiri ketika tidak menggunakan method System.exit() untuk lebih memahaminya.
Contoh Program try, catch, finally, Pada Method Yang Melemparkan Dan Tidak Melemparkan Exception
Berikut ini adalah contoh ketika method yang melemparkan dan tidak melemparkan exception menggunakan blok try, catch, dan finally.
Contoh:
public class Exception_finally { public static void melemparkanException() throws Exception{ try{ System.out.println("Pernyataan pada line 7 dieksekusi"); throw new Exception(); } catch(Exception ex){ System.out.println("Exception yang terlempar dari " + "method melemparkanException telah ditangkap oleh blok catch pada line 26"); throw ex;//exception ini akan ditangani oleh blok catch di main method } finally{ System.err.println("Pernyataan dalam blok finally pada line 17 dieksekusi"); } } public static void tidakMelemparkanException(){ try{ System.out.println("Method tidakMelemparkanException dijalankan"); } //blok catch ini tidak akan dieksekusi karena method tidak melemparkan exception catch(Exception ex){ System.err.println(ex); } finally{ System.err.println("Pernyataan dalam blok finally pada line 41 dieksekusi"); } System.out.println("Akhir dari method tidakMelemparkanException"); } public static void main(String[] args) { try{ melemparkanException(); } catch(Exception ex){ System.err.println("Exception yang terlempar dari blok catch pada " + "line 13 ditangani di main method"); } //tidakMelemparkanException(); } }
Contoh output:
Pernyataan pada line 7 dieksekusi
Exception yang terlempar dari method melemparkanException telah ditangkap oleh blok catch pada line 26
Pernyataan dalam blok finally pada line 17 dieksekusi
Exception yang terlempar dari blok catch pada line 13 ditangani di main method
Method tidakMelemparkanException dijalankan
Pernyataan dalam blok finally pada line 30 dieksekusi
Akhir dari method tidakMelemparkanException
Demikianlah penjelasan mengenai contoh penggunaan blok finally pada exception handling program Java. Yang terpenting adalah pemahaman konsepnya sebagai dasar. Semoga bisa membantu anda yang sedang belajar pemograman Java.
Post a Comment for "Memahami Contoh Penggunaan Blok Finally Pada Exception Handling Program Java"