Golang处理错误信息或自定义错误信息
前言:在golang中,程序遇到错误后系统会抛出一个panic恐慌错误,会停止程序,中断程序执行,但是我们有的时候又不想程序错误后中断程序,那我们就要进行捕获错误信息并且处理
一.Golang处理错误信息
- 捕获错误信息会用到defer还有recover,接下来我们看代码
- 在sub01函数中发生了错误导致接下来的代码不会继续执行,我们加上defer,recover解决此现象
- 可以看到defer+recover捕获了错误信息,并且处理了错误信息,不会导致程序中断
二.Golang自定义错误信息
- 一般程序途中出错了,获得不到正确的值,而接下来的程序也没必要继续执行了,我们可以自定义错误信息进行返回给操作人员
- 自定义错误信息我们会用上errors包
- 可以看到用到errors包new方法可以自定义错误信息返回
三.代码块
package main
import (
"errors"
"fmt"
)
func sub01() {
defer func() {
err := recover()
if err != nil {
fmt.Println(err)
fmt.Println("请速度处理错误,发送邮件给admin@163.com")
}
}()
number01 := 100
number02 := 0
number03 := number01 / number02
fmt.Println(number03)
}
func checkFile(name string) (err error) {
if name == "conf.init" {
fmt.Println("文件正确")
err = nil
} else {
err = errors.New("文件正确,请上传正确文件!")
}
return err
}
func main() {
err := checkFile("conf.ini")
if err != nil {
panic(err)
}
fmt.Println("我们还会继续执行吗?~")
}