Golang - 异常处理
发布时间:2020-12-16 09:28:51 所属栏目:大数据 来源:网络整理
导读:目录 Golang - 异常处理 1. 抛异常和处理异常 2. 返回异常 Golang - 异常处理 1. 抛异常和处理异常 package mainimport "fmt"//系统抛异常func test0111() { a := [5]int{0,1,2,3,4} a[1] = 123 //a[10] =456 index := 10 //index out of range a[index] = 4
目录
Golang - 异常处理1. 抛异常和处理异常package main import "fmt" //系统抛异常 func test0111() { a := [5]int{0,1,2,3,4} a[1] = 123 //a[10] =456 index := 10 //index out of range a[index] = 456 } //自己抛 func test222() { getCircleArea(-5) } func getCircleArea(radius float32) (area float32) { if radius < 0 { //自己抛异常 panic("您的智商已下线,半径不能为负数") } return 3.14 * radius * radius } //结合defer func test0333() { //延迟执行匿名函数 //(1)函数正常执行结束了 //(2)报错中断执行 defer func() { //recover():返回程序为什么挂了 if err := recover(); err != nil { fmt.Println(err) } }() getCircleArea(-5) fmt.Println("这里有没有执行") } func test444() { test0333() fmt.Println("GAME OVER") } func main() { //test0111() //test222() //test0333() test444() } 2. 返回异常package main import ( "errors" "fmt" ) func getCircleArea(radius float32) (ret float32,err error) { if radius < 0 { err = errors.New("沙雕,半径不能为负数") return } ret = 3.14 * radius * radius return } func main() { ret,err := getCircleArea(-5) if err != nil { fmt.Println(err) } else { fmt.Println("ret=",ret) } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |