package main
import "fmt"
//异常处理
//defer panic recover
//defer 表示延迟调用,即便程序出现严重错误,也会执行
//panic 就是python中的raise(主动抛出异常)
//recover 恢复程序,继续执行
func main() {
//先注册,后调用
//defer fmt.Println("xxxx")
//defer fmt.Println("yyy")
f1()
f2()
f3()
}
func f1() {
fmt.Println("f1...")
}
func f2() {
defer func() {
if a:=recover();a!=nil{
//a 如果不等于nil,表示程序出了异常,a 就是异常信息
//a 等于nil,表示没有异常
//fmt.Println("出错了")
fmt.Println(a)
}
//用于会被执行(相当于finally)
}()
fmt.Println("f2...")
//var a =make([]int,3,3)
//fmt.Println(a[4])
panic("你给我出去")
}
func f3() {
fmt.Println("f3...")
}
package main
import (
"errors"
"fmt"
)
//错误
func circleArea(radius int) (int, error) {
if radius < 0 {
return 0, errors.New("错误信息")
//panic("xddd")
}
return 100, nil
}
func main() {
a,_:=circleArea(-10)
if err!=nil{
fmt.Println(err)
}
//fmt.Println(err)
fmt.Println(a)
_,err:=fmt.Println()
if err!=nil{
fmt.Println("打印出错")
}
}