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

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.

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.

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

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.

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

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.