Study
Go

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.

Editor Latihan

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.