Akademi Manajemen Informatika

Error Interface

Bahasa pemrograman Go Mempunyai sebuah interface Spesifik yang digunakan sebagai kontrak ketika Membikin error. Interface tersebut bernama error. Interface ini Mempunyai sebuah function bernama Error dengan return value string. Berikut ini kode interface error Punya Golang.

type error interface {
  Error() string
}

Membikin Error di Golang

Buat Membikin error di Golang, kita Dapat Membikin struct yang Mempunyai function Error sehingga memenuhi kontrak error interface Punya Golang. Tapi, daripada kita Membikin struct secara manual, kita Dapat memanfaatkan helper yang disediakan oleh Golang, berada dalam package errors.

Perhatikan Misalnya kode berikut Buat Membikin error di Golang.

package main

import (
	"errors"
	"fmt"
	"strings"
)

func Uppercase(text string) (string, error) {
	if text == "" {
		return "", errors.New("Text Tak boleh Hampa")
	}
	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 Tak boleh Hampa

Pada Misalnya kode di atas, kita Membikin sebuah function bernama Uppercase yang akan merubah text menjadi uppercase. Function tersebut mengembalikan dua buah data Yakni string sebagai hasil dari konversi uppercase, dan error sebagai error ketika text berisi string Hampa.

READ  SIAKAD : Definisi, fungsi, tujuan, fitur

Berikutnya pada function main kita masukkan hasil dari function Uppercase ke dalam variabel result dan err. Kemudian, kita Membikin pengujian kondisi sederhana Apabila variabel err datanya adalah nil maka kita cetak hasilnya, sedangkan Apabila variabel err Tak berisi nil berarti Eksis error yang terjadi. Kita cetak errornya.

Anda mungkin sedikit bingung kenapa function mengembalikan hasil dan error secara bersamaan. Di dalam bahasa pemrograman Go, function yang Dapat mengembalikan error memang sudah Normal dituliskan dengan format seperti itu. Anda Dapat Menyaksikan Misalnya-Misalnya library yang dibuat oleh para programmer Go. Mereka sering menuliskannya seperti itu.

Berikutnya: #33: Type Assertions