Error Handling di Go
Penjelasan
Berbeda dari kebanyakan bahasa lain yang pakai try/catch, Go menangani error dengan mengembalikannya sebagai NILAI BIASA (bertipe error) di return value terakhir suatu fungsi — lalu pemanggilnya WAJIB mengecek error itu secara eksplisit dengan if err != nil. Go juga punya panic/recover untuk situasi benar-benar fatal (jarang dipakai untuk error biasa).
Contoh Konsep
package main
import (
"errors"
"fmt"
)
func bagi(a, b int) (int, error) {
if b == 0 {
return 0, errors.New("tidak bisa membagi dengan nol")
}
return a / b, nil
}
func main() {
hasil, err := bagi(10, 0)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println(hasil)
}
Praktikum
Buat fungsi ambilElemen(data []int, index int) (int, error) yang mengembalikan error kalau index di luar jangkauan data. Panggil fungsi itu dengan index yang sengaja tidak ada, cek errornya dengan if err != nil, lalu tampilkan pesan errornya.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Jangan pernah abaikan error dengan _ (mis. hasil, _ := bagi(10, 0)) kecuali kamu benar-benar yakin errornya tidak mungkin terjadi — mengabaikan error diam-diam adalah sumber bug paling umum di kode Go pemula.