golang如何捕获错误


当前第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》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...