...
一点例子
要不是考试要考,懒得看这俩货, 非高大上的项目估计用不到,提前处理下,不比用这个香
error 就是一个接口, 一个生成错误字符串的方法,总之就是和字符串有关系
type error interface {
Error() string
}
package main import ( "errors" "fmt" "log" ) func foo(x,y int) (int,error){ if y == 0 { return y,errors.New("err emmit !!") } return x/y,nil } func main() { fmt.Println("main begin") if x,y := foo(3,2); y != nil{ log.Println(x,y) }else { log.Println(x,y) } //log.Println(foo(3,2)) fmt.Println("main exit") }
...
panic 会翻车, 可以恢复
package main import ( "fmt" ) func foo(){ defer func(){ if err := recover(); err != nil { fmt.Println(err) } }() var bar = []int{1} fmt.Println(bar[1]) } func main(){ foo() fmt.Println("exit") }