Penanganan error Dasar
Termasuk bagian Dasar-Dasar dalam perjalanan GO di Coddy. Pelajaran 108 dari 109.
Penanganan Error Dasar adalah pola mendasar dalam Go. Kamu memeriksa error setelah operasi yang mungkin gagal.
Mari pelajari cara menangani error di Go dengan membuat fungsi pembagian sederhana yang mengembalikan error saat membagi dengan nol:
func divide(a, b int) (int, error) {
if b == 0 {
return 0, errors.New("division by zero")
}
return a / b, nil
}Fungsi ini mengembalikan dua nilai: hasil pembagian dan error. Jika pembaginya nol, fungsi ini mengembalikan pesan error alih-alih mencoba melakukan pembagian.
Sekarang, mari kita lihat cara menggunakan fungsi ini dan menangani kemungkinan error:
result, err := divide(10, 0)
if err != nil {
fmt.Println("Error occurred:", err)
return // Hentikan eksekusi atau tangani error
}
fmt.Println("Result:", result)Setelah menjalankan kode ini, kita memeriksa apakah terjadi error menggunakan kondisi if err != nil. Karena kita mencoba membagi dengan nol, fungsi mengembalikan error, dan teks berikut akan muncul di layar:
Error occurred: division by zeroPola mengembalikan error sebagai nilai yang dikembalikan terakhir lalu langsung memeriksanya sangat umum di Go. Pola ini memungkinkan programmu menangani kegagalan dengan baik alih-alih mengalami crash.
Tantangan
MudahDalam tantangan ini, kamu akan berlatih menangani error dasar di Go. Kamu memiliki fungsi yang membagi dua angka, tetapi pembagian dengan nol menyebabkan error saat program berjalan. Tugasmu adalah menambahkan penanganan error untuk mencegah program mengalami crash.
Kode tersebut sudah memiliki fungsi yang mengembalikan hasil dan error. Kamu perlu memeriksa apakah ada error sebelum menggunakan hasilnya.
Coba sendiri
package main
import (
"errors"
"fmt"
)
// Fungsi ini membagi x dengan y dan mengembalikan error jika y bernilai nol
func divide(x, y float64) (float64, error) {
if y == 0 {
return 0, errors.New("cannot divide by zero")
}
return x / y, nil
}
func main() {
// Nilai uji
numerator := 10.0
denominator := 0.0
// Panggil fungsi divide
result, err := divide(numerator, denominator)
// TODO: Periksa apakah err bukan nil (ada error)
// Jika ada error, cetak error tersebut dengan fmt.Println(err)
// Jika tidak, cetak hasilnya dengan fmt.Printf("Result: %.2f\n", result)
// Hapus baris ini dan terapkan penanganan error yang tepat di atas
fmt.Printf("Result: %.2f\n", result)
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
4Operator Perbandingan dan Logika
Operator Perbandingan, Bagian 1Operator Perbandingan, Bagian 2Operator AND LogikaOperator OR LogikaOperator NOT LogikaDasar Prioritas OperatorRingkasan, Membuat Perbandingan7Alur Kontrol: Perulangan
Penjelasan tentang `for` loop`for` loop Dasar`for` loop dengan Kondisi SajaKata Kunci `break`Kata Kunci `continue`Perulangan BersarangRangkuman: Mengulang Tindakan2Variabel dan Tipe Data Dasar
Apa itu variabelInferensi Tipe dengan `:=`Bilangan Bulat (int)Bilangan Floating-PointBooleanstringNilai NolKonstantaKonvensi PenamaanRangkuman: Variabel dan Tipe5Input/Output Dasar
Output TerformatKata Kerja FormatMencetak Tipe DataMendapatkan Input Dasar dari PenggunaRangkuman: Input dan Output8Fungsi
Memahami FungsiMendeklarasikan FungsiMemanggil FungsiParameter FungsiMengembalikan Satu NilaiMengembalikan Beberapa NilaiNilai Kembalian BernamaDasar Cakupan FungsiRangkuman: Membuat Kodemu Dapat Digunakan Kembali11Tipe Komposit: Slice
Pengenalan SliceMendeklarasikan Literal SliceMembuat Slice dengan `make`Panjang Slice vs KapasitasMengakses Elemen SliceMenambahkan ElemenMembuat Slice dari Slice/Array yang AdaMelakukan Iterasi pada SliceMenyalin SliceRangkuman: List Dinamis14Penanganan error Dasar
Konsep errorInterface `error`Fungsi yang Mengembalikan errorMemeriksa errorMembuat error SederhanaMembuat error BerformatPenanganan error DasarRingkasan: Menangani Masalah3Operator Dasar
Operator AritmetikaOperator PembagianOperator ModuloOperator PenugasanOperator Penugasan GabunganInkrementasi dan DekrementasiRangkuman: Perhitungan6Alur Kontrol: Percabangan
Pernyataan `if`Kata Kunci `else`Kata Kunci `else if`Shadowing Variabel dalam `if`Menginisialisasi VariabelPernyataan `switch``switch` dengan Ekspresi`switch` tanpa EkspresiKata Kunci `fallthrough`Ringkasan: Membuat KeputusanLatihan sendiri: Compiler Go online