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