# error接口
# panic()函数
# recover()函数
# defer 延迟调用,退出函数前调用
package main
import (
"errors"
"fmt"
)
//一般错误 error接口
func testErr(a int) (c int, err error){
if(a == 0){
err = errors.New("errorerror")
}else{
c = 1 / a
err = nil
}
return
}
//致命错误 panic()函数终止程序
func testPanic(){
panic("panicpanic")
}
//数组越界导致panic
func testPanic2(x int){
var arr [5]int
arr[x] = 0
}
func main() {
/*
err := fmt.Errorf("%s","errorerror")
fmt.Println(err)
err2 := errors.New("err2err2")
fmt.Println(err2)
*/
c,err := testErr(0)
if(err == nil){
fmt.Println(c)
}else{
fmt.Println(err)
}
defer fmt.Println("deferdefer")
defer func(){
err := recover()
if(err != nil){
fmt.Println(err)
}
}()
//testPanic()
testPanic2(10)
fmt.Println("=====================")
}