Thuta Learning
Go
AdvancedProgrammingbeginner

Error Handling

Go မှာ exception ပုံစံမဟုတ်ဘဲ error value ကို return ပြန်ပြီး caller ကစစ်ဆေးတာက ပုံမှန်ရေးနည်းပါ။ ဒီပုံစံက error ကိုဖုံးကွယ်မထားဘဲ code flow ထဲမှာရှင်းရှင်းလင်းလင်းမြင်စေပါတယ်။

go
package main

import (
    "errors"
    "fmt"
)

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

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

    fmt.Println("Result:", result)
}

divide function က result နဲ့ error ကိုပြန်ပေးပါတယ်။ Error မရှိရင် nil ပြန်ပေးပြီး error ရှိရင် message ပါတဲ့ error value ပြန်ပေးပါတယ်။

You should see
Error: cannot divide by zero

Info

if err != nil ကိုတွေ့တာများလို့ စစချင်းထပ်တလဲလဲဖြစ်သလိုထင်နိုင်ပေမဲ့ Go code readability အတွက် အရေးကြီးတဲ့ style ပါ။

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • Error ကို ignore လုပ်တာက production bug ကြီးတွေဖြစ်စေနိုင်ပါတယ်။ အနည်းဆုံး log ထုတ်ပါ၊ user-friendly message ပြပါ၊ သို့မဟုတ် caller ကိုပြန်ပေးပါ။