错误处理机制
当程序发生错误,程序就会崩溃,所以,引进错误处理机制,当发生错误后,可以捕获错误,并进行处理,保证程序正常执行,并返回给管理员错误的信息提示。
异常处理
Go中抛出一个panic的异常,然后在关键字defer中通过recover()函数捕获这个异常,最后正常处理。
defer语句的作用是不管程序是否出现异常,均在函数退出时自动执行相关代码。
程序案例
package main
import (
"fmt"
)
func test() {
// 使用defer + recover 来捕获异常
defer func() {
// recover()内置函数,可以捕获异常
err := recover()
// 说明捕获异常的错误
if err != nil {
fmt.Println("err=", err)
}
}
num1 := 10
num2 := 0
res := num1 / num2
fmt.Println("res=", res)
}
func main() {
test()
}
自定义错误
error类型是go语言的一种内置类型,是一个接口。
errors.New(“错误说明”),会返回一个error类型的值,表示一个错误
panic()内置函数,接收一个interface{}类型的值 作为参数,可接收error类型的变量,输出错误信息,并退出程序
程序案例
package main
import "fmt"
func readConf(name string) error {
if name == "config.ini" {
return nil
} else {
return errors.New("读取文件错误")
}
}
func main() {
err := readConf("config1.ini")
if err != nil {
panic(err)
} else {
fmt.Println("继续执行")
}
fmt.Println("main函数继续执行")
}
有疑问加站长微信联系(非本文作者)