Go學習隨筆(九)painc函數的簡易敘述作用和使用

painc是一個內建函數,可以中斷原有的控制流程,進入一個“恐慌”的流程(就是意思我遇到問題了,不知道該咋辦,我好慌),這個過程稱爲錯誤處理流程。

恐慌可以直接調用painc產生,也可以由運行時的錯誤產生,例如數組越界等。

painc()函數能接受任何類型的數據。格式如下。

例如:

painc(404)

painc("error")

painc(Error("file not exists"))

通俗點講,就是你遇見問題了 painc會終止程序,你沒有在程序中添加任何其他措施的話,就打印painc的詳細或者內容,然後程序停止運行。但是前面無論產生什麼錯誤都不會影響到defer的執行

 

func main() {
	defer func() {
		fmt.Println("test")
		panic("defer painc") //執行打印defer painc後程序就終止運行了後面的都沒執行
		fmt.Println("test1") //未執行
	}()
	fmt.Println("測試")
	panic("test painc") //執行打印test painc後 程序就終止運行了後面的都沒執行
	fmt.Println("測試1")  //未執行
	x()                 //未執行
}

func x() {
	fmt.Println("x")
}

 

輸出結果如下:

可以看出painc的結果都被輸出到 painc下面了,測試1和test1及x函數都沒有執行,除了defer沒有影響,但是defer中的painc也終止了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章