当前第2页 返回上一页
捕捉自己设置的panic错误:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | package main
import "fmt"
import "math"
func foo(a int) {
defer fmt.Println("foo退出来了")
defer func() {
if r := recover(); r != nil {
fmt.Printf("捕获到的错误:%s\n", r)
}
}()
if a < 0 {
panic("必须输入大于0的数")
}
fmt.Println("该数的方根为:", math.Sqrt(float64(a)))
}
func main() {
var a int
a = 10
fmt.Printf("a=%d\n", a)
foo(a)
var b int
b = -10
fmt.Printf("b=%d\n", b)
foo(b)
fmt.Println("该goroutine还可以执行")
}
// ///////////
a=10
该数的方根为: 3.1622776601683795
foo退出来了
b=-10
捕获到的错误:必须输入大于0的数
foo退出来了
该goroutine还可以执行
Process finished with exit code 0
|
以上就是golang如何捕获错误的详细内容,更多文章请关注木庄网络博客!!
返回前面的内容
相关阅读 >>
go语言开发环境搭建
golang select不阻塞吗
go实现ssh远程执行命令
手撸golang 行为型设计模式 策略模式
golang不规则json解析
golang反射重要吗
golang的内存管理(下篇)
go 读写锁实现原理解读
手撸golang 基本数据结构与算法 归并排序
golang与java语法上的区别
更多相关阅读请进入《golang》频道 >>
老貘
一个与时俱进的Go编程知识库。
转载请注明出处:木庄网络博客 » golang如何捕获错误