Golang 循环异常抛出不影响整个请求

代码案例

func main() {

    fmt.Println("开始------")
    for i:=0;i<10 ;i++  {
        func()  {
            defer func() {
                if err := recover();err != nil{
                    fmt.Println(err)
                }
            }()
            if i == 2{
                panic("2 这里抛出异常了----- ")
            }else {
                fmt.Println(i)
            }
        }()
        fmt.Sprintf("测试一下 %v \n",i)
    }
    fmt.Println("结束------")
)

输出结果

开始------
0
1
2 这里抛出异常了----- 
3
4
5
6
7
8
9
结束------

匿名函数后面加()是运行这个函数的意思。所以defer里面的function后带(),return 后面不能带 ()

本作品采用《CC 协议》,转载必须注明作者和本文链接
good good study day day up
讨论数量: 1
playmaker

提到 golang 板块吧

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!