Defer pada golang

Golang – Apa itu Defer, Panic dan Recover

Pada artikel sebelumnya kita telah belajar apa itu closure pada bahasa pemrogaman go atau golang. apabila anda belum mengikuti artikel sebelumnya saya sarankan anda untuk membaca artikel sebelumnya tentang Golang – Apa itu closure. Dan artikel kali ini kita akan belajar tentang defer, panic & recover dan cara menggunakannya pada bahasa pemrogaman go.

Pengenalan dan cara menggunakan defer

Defer function adalh sebuah function yang bisa kita jadwalkan untuk di eksekusi setelah sebuah function di eksekusi. Defer function akan tetap di eksekusi walau terjadi error pada function yang di eksekusi, contohnya seperti berikut

Defer pada golang
Defer pada golang

Pada contoh kode diatas kita membuat dua function logging dan runApp yang dimana function logging akan kita gunakan sebagai defer sehingga function tersebut akan di eksekusi setiap kali function runApp selesai di eksekusi tidak peduli walau runApp berhasil di eksekusi atau gagal karena error.

Panic

Panic function adalah function yang bisa kita gunakan untuk menghentikan program, panic function biasanya dipanggil saat terdapat error pada saat program kita berjalan, saat panic function dipanggil program akan berhenti tetapi defer function akan tetap di eksekusi.

Panic function pada golang
Panic function pada golang

Pada contoh kode diatas sama seperti sebelumnya kita membuat dua function logging untuk defer yang di eksekusi setelah runApp di eksekusi. Dan dari kode di atas kita membuat skema sederhanaa jika kita mengirimkan data true pada parameter runApp maka kita akan menganggap seolah-olah ada error dan kita menggunakan function panic pada baris ke 16. Perhatikan output berikut untuk membandingkan jika kita mengirim data true & false.

Output panic saat error false
Output panic saat error false

Pada output di atas bisa dilihat jika tidak terdapat error dan program berjalan sebagaimana mestinya, karena kita mengirimkan parameter false. Selanjutnya coba kirim parameter true pada function runApp

Output function panic error true
Output function panic error true

Perhatikan output di atas, bisa dilihat jika program tidak menjalankan baris ke 18 dikarenakan program berhenti dikarenakan pada baris 16 kita memanggil panic, tetapi bisa dilihat juga jika defer teteap berjalan.

Recover

Recover adalah function yang dapat kita gunakan untuk menangkap data panic, Dengan recover kita bisa menghentikan proses panic sehingga program akan tetap berjalan, lebih tepat nya panic akan tetap menghentikan proses pada suatu function yang error tetapi dengan recover aplikasi akan tetap berjalan dan akan mengeksekusi baris kode selanjutnya diluar function yang error. Oleh karena itu recover biasanya di panggil di dalam defer untuk memastikan agar selalu di eksekusi jika terjadi panic.

Function recover pada golang
Function recover pada golang

Perhatikan gambar di atas, kita menjalankan recover pada defer dan akan mencetak pesan dari panic saat panic terjadi, coba jalankan baris kode diatas dan pastikan kita mengirim paramater error dengan data true pada runApp agar panic di eksekusi. Maka lihat output dibawah ini jika walau terjadi error aplikasi tetap berjalan

Output recover saat error true
Output recover saat error true

Penutup

Pada artikel kali ini kita telah belajar apa itu Defer, Panic & Recover pada bahasa pemrogaman golang. Dan pada artikel selanjutnya saya akan membahas Struct pada golang.

Leave a reply:

Your email address will not be published.

Site Footer

Sliding Sidebar

About Me

About Me

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam.

Social Profiles

Facebook