錯誤處理
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
}