一. 异常处理
1. error接口
Go语言中引入了一个关于错误处理的标准模式error接口,是go语言的内置接口类型
type error interfance{
Error() string
}
具体使用:
package main
import (
"errors"
"fmt"
)
func MyDiv(a, b int) (r int, e error) {
e = nil
if b == 0 {
e = errors.New("分母不能为0")
} else {
r = a /b
}
return r, e
}
func main() {
result, err := MyDiv(10, 2)
if err != nil {
fmt.Println("err == ", err)
} else {
fmt.Println("result == ", result)
}
2. panic
- 我们不应该通过调用panic函数来报告普通任务,而应该只是把他作为报告致命错误的一种方式
- 当panic异常发生时,程序会中断运行
3. recover
package main
import "fmt"
func texta() {
fmt.Println("aaaaaaaaaaaaaaaaa")
}
func textb(x int) {
defer func() {
if err := recover() ; err != nil {
fmt.Println(err)
}
}()
var a [10]int
a[x] = 111
}
func textc() {
fmt.Println("cccccccccccccccccc")
}
func main() {
texta()
textb(20)
textc()
}
/*
aaaaaaaaaaaaaaaaa
runtime error: index out of range
cccccccccccccccccc
*/