首页 > 其他 > 详细

golang recover panic 流程控制的可达与不可达

时间:2015-04-27 13:07:01      阅读:179      评论:0      收藏:0      [点我收藏+]
--------------------------流程控制可达-----------------------------
package main

import "fmt"

func explode() {
    // Cause a panic.
    panic("WRONG")

}

func throwPanic(f func()) {
    defer func() {
        if err := recover(); err != nil {
            // Handle our error.
            fmt.Println("FIX")
            fmt.Println("ERR", err)
        }
    }()
    f()
    fmt.Println(" finish")
}

func main() {
    throwPanic(explode)
    fmt.Println(" reach here ")//可达
}



--------------------------流程控制不可达-----------------------------
package main

import "fmt"

func explode() {
    // Cause a panic.
    panic("WRONG")
}

func main() {
    // Handle errors in defer func with recover.
    defer func() {
    if err := recover(); err != nil {
        // Handle our error.
        fmt.Println("FIX")
        fmt.Println("ERR", err)
    }
    }()
    // This causes an error.
    explode()
    fmt.Println(" reach here ")// 达不到
}

 

golang recover panic 流程控制的可达与不可达

原文:http://www.cnblogs.com/rojas/p/4459696.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!