91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

golang中捕獲錯誤的方法

發布時間:2020-06-17 11:19:40 來源:億速云 閱讀:463 作者:Leah 欄目:編程語言

這期內容當中小編將會給大家帶來有關golang中捕獲錯誤的方法,以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

func panic(interface{})和func recover() interface{}是Golang中用于錯誤處理的兩個函數。

panic的作用就是拋出一條錯誤信息,從它的參數類型可以看到它可以拋出任意類型的錯誤信息。

在函數執行過程中的某處調用了panic,則立即拋出一個錯誤信息,同時函數的正常執行流程終止,但是該函數中panic之前定義的defer語句將被依次執行。之后該goroutine立即停止執行。

recover()用于將panic的信息捕捉。

recover必須定義在panic之前的defer語句中。在這種情況下,當panic被觸發時,該goroutine不會簡單的終止,而是會執行在它之前定義的defer語句。

捕捉自己設置的panic錯誤:

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中捕獲錯誤的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泾川县| 历史| 桑植县| 奎屯市| 鄂托克前旗| 南郑县| 陇南市| 太湖县| 措美县| 建德市| 松潘县| 东辽县| 习水县| 民和| 忻城县| 铁岭县| 德江县| 玉门市| 建昌县| 柘荣县| 年辖:市辖区| 罗山县| 马公市| 肃宁县| 汉沽区| 庄浪县| 会理县| 嘉祥县| 桑植县| 昔阳县| 天峻县| 南雄市| 临海市| 青海省| 望奎县| 疏勒县| 乡宁县| 安龙县| 行唐县| 胶州市| 江川县|