Go程序中,也支持自定义错误,使用errors.New和panic内置函数
1>errors.New("错误说明"), 会返回一个error类型的值,表示一个错误
2>panic内置函数,接受一个interface{}(空接口)类型的值(也就是任何值)作为参数。可以接受error类型的变量,输出错误信息,并退出程序
举例说明:
func readConf(name string) (err error) {
if name == "config.ini" {
//读取...
return nil
} else {
//返回自定义错误
return errors.New("读取文件错误")
}
}
func test02() {
err := readConf("config2.ini")
if err != nil {
//如果读取文件发送错误,就输出这个错误,并终止程序
panic(err)
}
fmt.Println("test02()继续执行......")
}
func main() {
test02()
fmt.Println(main()后面的代码......")
}
main():
先进入test02()函数,执行err:=readConf("config2.ini")语句,此时name == “config.ini”,readConf函数返回的是nil,因此test02函数中则不会进入panic(err)语句,将会输出"test02()继续执行......"
test02()执行完毕后,输出语句"main()后面的代码......”
结果为:
倘若文件名并不等于"config.ini"
会爆出panic
此时panic显示的错误则为自定义的:“读取文件错误”