本文主要是介绍二十三、错误处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
一、使用errors包
1、处理读取文件时
2、创建错误
3、创建错误格式
4、从函数中返回错误
二、慎用panic
1、错误使用方式
2、正确使用方式
错误处理,其实就是居安思危,预想到某块可能会出现问题,进而编辑好代码进行处理
一、使用errors包
1、处理读取文件时
在go语言中err非常独特,可以将err信息传递给函数和方法
func main() {file, err := os.ReadFile("/Users/text.md")if err != nil {fmt.Println(err)}fmt.Println(file)
}
结果:
open /Users/text.md: no such file or directory
[]
解释:
使用file,err := 这里非常方便的将os.ReadFile函数返回值中错误信息给到err和字节切片给到file
2、创建错误
使用go中的errors包的new方法进行创建
func main() {err := errors.New("this is an error")if err != nil {fmt.Println(err)}
}
3、创建错误格式
func main() {name, role := "zs", "dru"err := fmt.Errorf("the %v %v quit", name, role)if err != nil {fmt.Println(err)}
}
结果:
the zs dru quit
解释:
在上述代码中%v %v占位符把name,与role的变量值进行替换
4、从函数中返回错误
func Half(numberToHalf int) (int, error) {if numberToHalf%2 != 0 {return -1, fmt.Errorf("can not half %v", numberToHalf)}return numberToHalf / 2, nil
}func main() {n, err := Half(9)if err != nil {fmt.Println(err)return}fmt.Println(n)
}
结果:
can not half 9
解释:
创建一个函数用于判断值是否能被2整除,不能整除就报错
使用n, err := Half(9)调用方法并接收返回值,发现err不为空则打印err信息并且return不再执行下面的代码
二、慎用panic
panic是go语言的内置函数,将终止程序继续运行
1、错误使用方式
func main() {fmt.Println("this will panic")panic("good bye")fmt.Println("this end panic")}
结果:
this will panic
panic: good bye
goroutine 1 [running]:
main.main()
/Users/xueqijun/go-workspace/Panics.go:7 +0x68
解释:
如此使用会导致程序崩溃,没有机会执行
fmt.Println("this end panic")
2、正确使用方式
err := errors.New("this is an error")if err != nil {panic(err)}
}
在发生错误时,为了避免运行下面程序带来更多的问题,所以选择了让程序崩溃停止执行
这篇关于二十三、错误处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!