使用defer + recover来捕获和处理异常
package main
import "fmt"
func test() int {
// 使用defer + recover来捕获和处理异常
defer func() {
err := recover() // recover()是内置函数,可以捕获到异常
if err != nil {
// panic("异常,exit.") // 恐慌过程,抛出异常,终止程序
fmt.Println("err=", err)
}
}()
num1 := 19
num2 := 0
var num3 int = num1 / num2
return num3
}
func main() {
num := test()
fmt.Println("num=", num)
fmt.Println("main()下面的代码...")
}
使用errors.New()自定义错误信息
package main
import (
"errors"
"fmt"
)
// 校验一个表单不能为空
func check(form_name string) error {
if form_name == "" {
return errors.New("表单不能为空")
} else {
return nil
}
}
func main() {
form_name := ""
err := check(form_name)
if err != nil {
fmt.Println("校验失败,错误:", err)
} else {
fmt.Println("校验成功")
}
}