最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

go語言的panic和recover函數(shù)用法實例

 更新時間:2019年04月02日 08:37:32   作者:stpeace  
今天小編就為大家分享一篇關(guān)于go語言的panic和recover函數(shù)用法實例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

Golang 有2個內(nèi)置的函數(shù) panic()recover(),用以報告和捕獲運行時發(fā)生的程序錯誤,與 error 不同,panic-recover 一般用在函數(shù)內(nèi)部。一定要注意不要濫用 panic-recover,可能會導(dǎo)致性能問題,我一般只在未知輸入和不可靠請求時使用。

golang 的錯誤處理流程:當(dāng)一個函數(shù)在執(zhí)行過程中出現(xiàn)了異?;蛴龅?panic(),正常語句就會立即終止,然后執(zhí)行 defer 語句,再報告異常信息,最后退出 goroutine。如果在 defer 中使用了 recover() 函數(shù),則會捕獲錯誤信息,使該錯誤信息終止報告。

看代碼:

package main
import "fmt"
func main(){
  defer func(){
    fmt.Println("c")
    // if err := recover(); err != nil{
    //   fmt.Println(err)
    // }else{
    //   fmt.Println("hehe")
    // }
    // if err := recover(); err != nil{
    //   fmt.Println(err)
    // }else{
    //   fmt.Println("haha")
    // }
    fmt.Println("d")
  }()
  f()
  defer func(){
    fmt.Println("e")
  }()
}
func f(){
  fmt.Println("a")
  panic(10000)
  fmt.Println("b")
  fmt.Println("f")
}

結(jié)果:

ubuntu@VM-0-15-ubuntu:~/taoge/go$ go run test.go
a
c
d
panic: 10000
goroutine 1 [running]:
panic(0x4b8480, 0xc82000a2c0)
        /usr/lib/go-1.6/src/runtime/panic.go:481 +0x3e6
main.f()
        /home/ubuntu/taoge/go/test.go:34 +0x115
main.main()
        /home/ubuntu/taoge/go/test.go:25 +0x35
exit status 2
ubuntu@VM-0-15-ubuntu:~/taoge/go$

看代碼:

package main
import "fmt"
func main(){
  defer func(){
    fmt.Println("c")
    if err := recover(); err != nil{
      fmt.Println(err)
    }else{
      fmt.Println("hehe")
    }
    if err := recover(); err != nil{
      fmt.Println(err)
    }else{
      fmt.Println("haha")
    }
    fmt.Println("d")
  }()
  f()
  defer func(){
    fmt.Println("e")
  }()
}
func f(){
  fmt.Println("a")
  panic(10000)
  fmt.Println("b")
  fmt.Println("f")
}

結(jié)果:

ubuntu@VM-0-15-ubuntu:~/taoge/go$ go run test.go
a
c
10000
haha
d
ubuntu@VM-0-15-ubuntu:~/taoge/go$ 

好好體會下。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • Go與Redis實現(xiàn)分布式互斥鎖和紅鎖

    Go與Redis實現(xiàn)分布式互斥鎖和紅鎖

    這篇文章主要介紹了Go與Redis實現(xiàn)分布式互斥鎖和紅鎖,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • golang連接mysql數(shù)據(jù)庫操作使用示例

    golang連接mysql數(shù)據(jù)庫操作使用示例

    這篇文章主要為大家介紹了golang連接mysql數(shù)據(jù)庫操作使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2022-04-04
  • golang兩種調(diào)用rpc的方法

    golang兩種調(diào)用rpc的方法

    這篇文章主要介紹了golang兩種調(diào)用rpc的方法,結(jié)合實例形式分析了Go語言調(diào)用rpc的原理與實現(xiàn)方法,需要的朋友可以參考下
    2016-07-07
  • 使用Go語言編寫一個NTP服務(wù)器的流程步驟

    使用Go語言編寫一個NTP服務(wù)器的流程步驟

    NTP服務(wù)器【Network?Time?Protocol(NTP)】是用來使計算機時間同步化的一種協(xié)議,為了確保封閉局域網(wǎng)內(nèi)多個服務(wù)器的時間同步,我們計劃部署一個網(wǎng)絡(luò)時間同步服務(wù)器(NTP服務(wù)器),本文給大家介紹了使用Go語言編寫一個NTP服務(wù)器的流程步驟,需要的朋友可以參考下
    2024-11-11
  • GO的range如何使用詳解

    GO的range如何使用詳解

    本文主要介紹了GO的range如何使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Golang跳轉(zhuǎn)語句continue與goto使用語法詳解

    Golang跳轉(zhuǎn)語句continue與goto使用語法詳解

    這篇文章主要介紹了Golang跳轉(zhuǎn)語句continue與goto使用語法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-01-01
  • 使用Go語言創(chuàng)建WebSocket服務(wù)的實現(xiàn)示例

    使用Go語言創(chuàng)建WebSocket服務(wù)的實現(xiàn)示例

    這篇文章主要介紹了使用Go語言創(chuàng)建WebSocket服務(wù)的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Go 值傳遞與引用傳遞的方法

    Go 值傳遞與引用傳遞的方法

    這篇文章主要介紹了Go 值傳遞與引用傳遞的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • 詳解Go如何優(yōu)雅的對時間進行格式化

    詳解Go如何優(yōu)雅的對時間進行格式化

    這篇文章主要為大家詳細介紹了Go語言中是如何優(yōu)雅的對時間進行格式化的,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-06-06
  • golang使用go test輸出單元測試覆蓋率的方式

    golang使用go test輸出單元測試覆蓋率的方式

    單元測試覆蓋率是衡量代碼質(zhì)量的一個重要指標,重要的代碼文件覆蓋率應(yīng)該至少達到80%以上,Java 可以通過JaCoCo 統(tǒng)計覆蓋率,那么go 項目如何進行代碼覆蓋率測試呢,本文將給大家詳細的介紹一下golang使用go test輸出單元測試覆蓋率的方式,需要的朋友可以參考下
    2024-02-02

最新評論

平乐县| 海林市| 云阳县| 德安县| 霍林郭勒市| 滕州市| 蓬莱市| 祥云县| 南投市| 潍坊市| 东阿县| 多伦县| 廊坊市| 迁西县| 兴义市| 竹溪县| 罗江县| 长宁县| 正定县| 都匀市| 郸城县| 大埔县| 友谊县| 平武县| 顺义区| 舟山市| 柳江县| 右玉县| 烟台市| 惠州市| 昭通市| 肥西县| 年辖:市辖区| 元谋县| 大英县| 英吉沙县| 正安县| 中卫市| 高阳县| 乳源| 鸡东县|