1. error
1.1 简述
Go 语言引入了一个关于错误处理的标准模式,即 error 接口,它是 Go 语言内建的接口类型,该接口的定义如下:
go
type error interface {
Error() string
}
type error interface {
Error() string
}
案例
go
package main
import (
"fmt"
"io/ioutil"
)
func main() {
f, err := ioutil.ReadFile("./text.txt")
if err != nil {
fmt.Println("文件读取失败", err.Error()) //Error() 抛出到终端
} else {
fmt.Println("文件读取成功", string(f))
}
}
package main
import (
"fmt"
"io/ioutil"
)
func main() {
f, err := ioutil.ReadFile("./text.txt")
if err != nil {
fmt.Println("文件读取失败", err.Error()) //Error() 抛出到终端
} else {
fmt.Println("文件读取成功", string(f))
}
}
2. errros自定义错误
go
package main
import (
"errors"
"fmt"
)
func divide(a, b int) (res int, err error) {
if b == 0 {
return 0, errors.New("除数不能为0")
}
res = a / b
return res, nil
}
func main() {
// 自定义error
error := errors.New("这是一个新的错误")
fmt.Println(error)
fmt.Println("================")
res, err := divide(1, 1)
if err != nil {
fmt.Println("计算出错", err.Error())
} else {
fmt.Println("计算结果为:", res)
}
}
package main
import (
"errors"
"fmt"
)
func divide(a, b int) (res int, err error) {
if b == 0 {
return 0, errors.New("除数不能为0")
}
res = a / b
return res, nil
}
func main() {
// 自定义error
error := errors.New("这是一个新的错误")
fmt.Println(error)
fmt.Println("================")
res, err := divide(1, 1)
if err != nil {
fmt.Println("计算出错", err.Error())
} else {
fmt.Println("计算结果为:", res)
}
}
3. panic
panic:可以在异常的时候让程序终止执行,退出程序。或者是程序所强依赖的基础组件不可用
此时程序已经无法继续正常工作,这时候可以使用panic抛出异常,并且把程序退出