golang panic recover

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

Go語言中異常處理painc()和recover()的用法

 

1、Painc用法是:用於拋出錯誤。Recover()用法是:將Recover()寫在defer中,並且在可能發生panic的地方之前,先調用此defer的東西(讓系統方法域結束時,有代碼要執行。)當程式遇到panic的時候(當然,也可以正常的調用出現的異常情況),系統將跳過後面的代碼,進入defer,如果defer函數中recover(),則返回捕獲到的panic的值。

2、代碼:

package main import "fmt" func main() {    fmt.Printf("hello world my name is %s, I'm %d\r\n", "songxingzhu", 26)    defer func() {        if err := recover(); err != nil {            fmt.Println("出了錯:", err)        }    }()    myPainc()    fmt.Printf("這裡應該執行不到!")}func myPainc() {    var x = 30    var y = 0    //panic("我就是一個大錯誤!")    var c = x / y    fmt.Println(c)}

 

3、執行結果

Atom Runner: main.go

hello world my name is songxingzhu, I'm 26

出了錯: runtime error: integer divide by zero

Exited with code=0 in 1.667 seconds

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.