Go Error Handling Return Error Wrapping Sentinel Errors
Definisi
Go menangani error sebagai value (bukan exception): fungsi return ..., error dan caller memeriksa if err != nil. errors.Wrap/fmt.Errorf("%w") untuk membungkus agar bisa di-unwrap. Sentinel error (var ErrNotFound = errors.New("...")) untuk perbandingan dengan errors.Is.
Kapan dipakai
Wajib di setiap fungsi yang bisa gagal. Ini fondasi sebelum testing/concurrency. Beda dari bahasa lain yang pakai try/catch.
Cara kerja
func read(f string) ([]byte, error) {
b, err := os.ReadFile(f)
if err != nil