Memahami Teladan Penggunaan Blok Finally Pada Exception Handling Jadwal Java
Hallo para agan, kali ini admin mau menulis mengenai pola penggunaan blok finally pada exception handling. Sebelumnya sudah di bahas mengenai blok try, catch dan contohnya. Satu poin penting yang perlu diingat yakni pernyataan dalam blok finally akan selalu dieksekusi, tidak perduli apakah suatu exception terjadi ataupun tidak.
Kaprikornus ketika anda menginginkan blok instruksi yang akan selalu dijalankan oleh jadwal Java terlepas dari ada atau tidak adanya exception, maka blok finally yakni daerah yang sempurna bagi anda untuk melaksanakan tujuan tersebut.
Secara sederhana, syntax dari finally yakni 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 instruksi dalam blok finally akan dieksekusi. Tidak hanya itu, meskipun tidak ada exception yang terlempar atau tertangkap, instruksi 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 yakni pernyataan dalam blok finally
Pernyataan ini dihukum walaupun blok try mempunyai pernyataan return
Ini yakni pernyataan return dalam blok try
Berikut ini yakni pola ketika class hanya memakai 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 memakai method System.exit() untuk lebih memahaminya.
Berikut ini yakni pola ketika method yang melemparkan dan tidak melemparkan exception memakai 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 klarifikasi mengenai pola penggunaan blok finally pada exception handling jadwal Java. Yang terpenting yakni pemahaman konsepnya sebagai dasar. Semoga sanggup membantu anda yang sedang mencar ilmu pemograman Java.
Tapi, ada satu masalah yang sanggup menyebabkan blok finally tidak dieksekusi,yaitu pada ketika jadwal keluar lebih awal dari blok try dengan memanggil method System.exit.
Kaprikornus ketika anda menginginkan blok instruksi yang akan selalu dijalankan oleh jadwal Java terlepas dari ada atau tidak adanya exception, maka blok finally yakni daerah yang sempurna bagi anda untuk melaksanakan tujuan tersebut.
Secara sederhana, syntax dari finally yakni 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 memakai blok finally maka anda juga harus memakai blok try. Ini yakni pasangan yang tidak sanggup dipisahkan.
- Penggunaan blok finally tidak wajib pada exception handling, tapi ini merupakan pilihan jika blok try-catch tidak cukup untuk menuntaskan masalah. Pernyataan pada blok finally akan selalu dijalankan sesudah sanksi dari blok try.
- Blok catch akan dihukum lebih dahulu jika terjadi exception pada blok try. Namun, jika tidak ada exception maka blok catch akan diabaikan dan pernyataan pada blok finally akan dieksekusi.
- Exception pada blok finally sanggup ditindaklanjuti sama persis dengan exception lainnya.
- Bila blok try mempunyai pernyataan ibarat 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 instruksi dalam blok finally akan dieksekusi. Tidak hanya itu, meskipun tidak ada exception yang terlempar atau tertangkap, instruksi di blok finally akan tetap dieksekusi.
Ketika blok finally dipakai maka blok catch sanggup 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 yakni pernyataan return dalam blok try"; } finally { System.err.println("Ini yakni pernyataan dalam blok finally"); System.err.println("Pernyataan ini dihukum walaupun blok try mempunyai pernyataan return"); } } public static void main(String args[]) { System.out.println(myMethod()); } }
Output:
Ini yakni pernyataan dalam blok finally
Pernyataan ini dihukum walaupun blok try mempunyai pernyataan return
Ini yakni pernyataan return dalam blok try
Blok try dan finally Tanpa Menggunakan Blok catch
Berikut ini yakni pola ketika class hanya memakai 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 memakai method System.exit() untuk lebih memahaminya.
Contoh Program try, catch, finally, Pada Method Yang Melemparkan Dan Tidak Melemparkan Exception
Berikut ini yakni pola ketika method yang melemparkan dan tidak melemparkan exception memakai 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 dihukum alasannya yakni 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 klarifikasi mengenai pola penggunaan blok finally pada exception handling jadwal Java. Yang terpenting yakni pemahaman konsepnya sebagai dasar. Semoga sanggup membantu anda yang sedang mencar ilmu pemograman Java.
Belum ada Komentar untuk "Memahami Teladan Penggunaan Blok Finally Pada Exception Handling Jadwal Java"
Posting Komentar