Error Interface
Bahasa pemrograman Go memiliki sebuah interface khusus yang digunakan sebagai kontrak ketika membuat error. Interface tersebut bernama error. Interface ini memiliki sebuah function bernama Error dengan return value string. Berikut ini kode interface error milik Golang.
type error interface {
Error() string
}
Membuat Error di Golang
Untuk membuat error di Golang, kita bisa membuat struct yang memiliki function Error sehingga memenuhi kontrak error interface milik Golang. Tapi, daripada kita membuat struct secara manual, kita bisa memanfaatkan helper yang disediakan oleh Golang, berada dalam package errors.
Perhatikan contoh kode berikut untuk membuat error di Golang.
package main
import (
"errors"
"fmt"
"strings"
)
func Uppercase(text string) (string, error) {
if text == "" {
return "", errors.New("Text tidak boleh kosong")
}
return strings.ToUpper(text), nil
}
func main() {
result, err := Uppercase("")
if err == nil {
fmt.Println(result)
} else {
fmt.Println("Error:", err.Error())
}
}
output:
Error: Text tidak boleh kosong
Pada contoh kode di atas, kita membuat sebuah function bernama Uppercase yang akan merubah text menjadi uppercase. Function tersebut mengembalikan dua buah data yaitu string sebagai hasil dari konversi uppercase, dan error sebagai error ketika text berisi string kosong.
Berikutnya pada function main kita masukkan hasil dari function Uppercase ke dalam variabel result dan err. Kemudian, kita membuat pengujian kondisi sederhana jika variabel err datanya adalah nil maka kita cetak hasilnya, sedangkan jika variabel err tidak berisi nil berarti ada error yang terjadi. Kita cetak errornya.
Kamu mungkin sedikit bingung kenapa function mengembalikan hasil dan error secara bersamaan. Di dalam bahasa pemrograman Go, function yang bisa mengembalikan error memang sudah biasa dituliskan dengan format seperti itu. Kamu bisa melihat contoh-contoh library yang dibuat oleh para programmer Go. Mereka sering menuliskannya seperti itu.
Berikutnya: #33: Type Assertions
