直接撸码它不香么
import (
"errors"
"fmt"
)
func main() {
//1、golang中的异常处理机制
// go语言追求代码简洁优雅,所以go不支持传统的 try .. catch ..finally这种处理
//go中异常处理的方式为 defer,panic,revover
//定义函数并赋给变量funcErro
funcErro := func() {
//使用defer(延时机制)和recover()来处理异常
defer func() {
//recover内置函数 ,可以捕获异常
err := recover()
if err != nil {
fmt.Println("error", err)
}
}()
num1 := 2
num2 := 0
//除零操作
res := num1 / num2
fmt.Println(res)
}
funcErro()
//2、自定义异常处理
//在go中支持支持自定义异常处理 使用errors.New 和 panic 内置函数来处理
//1)errors.New("错误说明")
//2)panic 内置函数,接收一个interface{}类型的值(也就是任何值)作为参数。
// 来接收error类型的变量,输出错误信息,并退出程序
funcVar1 := func(name string) (err error) {
if name == "cocnfig.ini" {
fmt.Println("文件名正确")
return nil
} else {
//自定义异常
return errors.New("文件名错误")
}
}
err := funcVar1("cocnfig.ini")
if err != nil {
fmt.Println(err)
}
}