跳至主要内容

錯誤處理

defer / recover / errors

Go 程序運行 panic 錯誤藉由 defer 和 recover 捕獲處理,後續程序正常運行。


package main

import (
"fmt"
)

func main() {

fmt.Println("Hello Go")

errorhandle()

fmt.Println("正常運行")
fmt.Println("運行結束")
}

func errorhandle() {

defer func() {

err := recover()

if err != nil {
fmt.Println("捕獲錯誤:", err)
}
}()

num1 := 10
num2 := 0

fmt.Println("num1 / num 2 = ", num1/num2)

}

自定義錯誤訊息


package main

import (
"fmt"
)

func main() {

fmt.Println("Hello Go")

errorhandle()

fmt.Println("正常運行")
fmt.Println("運行結束")
}

func errorhandle() err error {

num1 := 10
num2 := 0

// 返回錯誤
if num2 == 0 {
return errors.New("除數不能為0。")
}

fmt.Println("num1 / num 2 = ", num1/num2)

// 沒有錯誤
return nil
}