golang 学习笔记
error处理
package main
import (
"fmt"
"errors"
)
func dive(a int, b int) (value int, err error) {
if b == 0 {
err = errors.New("除数不能为0")
return
}
value = a / b
return
}
func main() {
value, err := dive(10, 5)
if err != nil {
fmt.Println("runtime error:",err)
} else {
fmt.Println(value)
}
}
panic处理
package main
import "fmt"
func test(i int){
var arr [10]int
//panic("runtime error: index out of range")
arr[i]=123
fmt.Println(arr)
}
func main() {
test(10)
当程序遇见panic是自动终止
//panic("hello world3")
}
recover错误拦截
package main
import "fmt"
import "errors"
func demo(i int) (code1 int, errs error) {
//错误拦截到出现在错误之前
defer func() {
//错误拦截 panic异常错误
err := recover()
//判断是否出现错误
if err != nil {
fmt.Println(err)
fmt.Printf("%T\n", err)
errs = errors.New("错误信息")
return
}
}()
var arr [10]int
//数组下标越界
arr[i] = 123
// fmt.Println(arr)
code1 = 1
return
}
func main() {
code, errs := demo(11)
if errs != nil {
fmt.Println(errs)
}
fmt.Println(code)
fmt.Println("hello world")
}