Menu
CoddyTech

Konsep error

Termasuk bagian Dasar-Dasar dalam perjalanan GO di Coddy. Pelajaran 102 dari 109.

Dalam Go, errors adalah nilai yang menunjukkan bahwa ada sesuatu yang tidak beres. Go menangani errors secara eksplisit, bukan menggunakan exceptions.

Mari buat fungsi yang mungkin menghasilkan error saat membagi angka:

func divide(a, b float64) (float64, error) {
    if b == 0 {
        return 0, errors.New("cannot divide by zero")
    }
    return a / b, nil
}

Fungsi ini mengembalikan dua nilai: hasil pembagian dan kemungkinan error. Jika pembaginya nol, kita mengembalikan pesan error alih-alih mencoba melakukan pembagian.

Sekarang, mari gunakan fungsi kita dan tangani kemungkinan error:

result, err := divide(10, 0)
if err != nil {
    fmt.Println("Error:", err)
} else {
    fmt.Println("Result:", result)
}

Setelah menjalankan kode ini, kita akan melihat pesan error di layar karena kita mencoba membagi dengan nol:

Error: cannot divide by zero

Ini menunjukkan pola penanganan error Go: periksa apakah terjadi error (err != nil), lalu ambil tindakan yang sesuai. Jika tidak terjadi error, kita dapat menggunakan hasilnya dengan aman.

challenge icon

Tantangan

Mudah

Dalam tantangan ini, kamu akan berlatih menangani error di Go. Kamu akan membuat fungsi yang membagi dua angka dan mengembalikan error jika terjadi pembagian dengan nol.

Tugasmu:

  1. Lengkapi fungsi divide yang menerima dua bilangan bulat dan mengembalikan hasil bagi serta error.
  2. Jika pembaginya nol, kembalikan 0 dan error dengan pesan "division by zero".
  3. Jika pembagian valid, kembalikan hasilnya dan nil untuk error.
  4. Di fungsi main, panggil divide dengan nilai yang diberikan dan tangani error dengan tepat.

Latihan ini menunjukkan cara fungsi Go biasanya mengembalikan hasil dan error, serta cara memeriksa dan menangani error tersebut.

Coba sendiri

package main
import (
    "errors"
    "fmt"
)
// divide membagi a dengan b dan mengembalikan hasilnya
// Jika b bernilai 0, fungsi ini mengembalikan error
func divide(a, b int) (int, error) {
    // TODO: Implementasikan fungsi divide
    // Jika b bernilai 0, kembalikan 0 dan error dengan pesan "division by zero"
    // Jika tidak, kembalikan a/b dan nil sebagai error

}
func main() {
    // Kasus uji pertama
    a, b := 10, 2
    result, err := divide(a, b)
    if err != nil {
        fmt.Printf("Error: %s\n", err)
    } else {
        fmt.Printf("Result: %d\n", result)
    }

    // Kasus uji kedua
    a, b = 8, 0
    result, err = divide(a, b)
    if err != nil {
        fmt.Printf("Error: %s\n", err)
    } else {
        fmt.Printf("Result: %d\n", result)
    }
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Compiler Go online