欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

小學(xué)生也能看懂的Golang異常處理recover panic

 更新時間:2021年09月27日 15:32:29   作者:毛毛是一只狗  
在其他語言里,宕機往往以異常的形式存在,底層拋出異常,上層邏輯通過 try/catch 機制捕獲異常,沒有被捕獲的嚴重異常會導(dǎo)致宕機,go語言追求簡潔,優(yōu)雅,Go語言不支持傳統(tǒng)的 try…catch…finally 這種異常

🌌 專注Golang,Python語言,云原生,人工智能領(lǐng)域得博主
💜 過去經(jīng)歷的意義在于引導(dǎo)你,而非定義你,
💜 只要我們足夠努力,任何人都有無限潛力

在這里插入圖片描述

  • 🚀panic 拋出異常函數(shù)
  • 🚀recover 捕獲異常函數(shù)

📣1:在一個主協(xié)成內(nèi)捕獲異常

package main

import (
	"fmt"
)

func main(){

	defer func(){
		err := recover()
		if err != nil{
			fmt.Println("捕獲到異常")
		}
	}()

	panic("異常出現(xiàn)") //拋出異常,代表錯誤代碼

}

🚀運行結(jié)果

在這里插入圖片描述

📣2:假設(shè)子協(xié)成內(nèi)部錯誤,看看主協(xié)成能不能捕獲到

package main

import (
	"fmt"
)

func Calculate(){
    
	panic("異常出現(xiàn)")  // 同樣代表錯誤代碼
}



func main(){

	defer func(){
		err := recover()
		if err != nil{
			fmt.Println("捕獲到異常")
		}
	}()

	go Calculate()
	
	time.Sleep(time.Second*3)  //防止主協(xié)成過早退出,導(dǎo)致子協(xié)成沒執(zhí)行

}

🚀執(zhí)行結(jié)果,主協(xié)成不能捕獲到子協(xié)成的錯誤

在這里插入圖片描述

📣3:假設(shè)子協(xié)成錯誤需要自己捕獲

package main

import (
	"fmt"
	"time"
)

func Calculate(){

	defer func(){
		err := recover()
		if err != nil{
			fmt.Println("協(xié)成內(nèi)部捕獲異常")
		}
	}()

	panic("異常出現(xiàn)")
}



func main(){

	go Calculate()

	time.Sleep(time.Second*3)

}

執(zhí)行結(jié)果,成功捕獲異常

在這里插入圖片描述

到此這篇關(guān)于小學(xué)生也能看懂的Golang異常處理recover panic的文章就介紹到這了,更多相關(guān)Golang 異常處理 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 總結(jié)Go語言中defer的使用和注意要點

    總結(jié)Go語言中defer的使用和注意要點

    Go語言中的defer關(guān)鍵字實現(xiàn)比較特殊的功能,這篇文章給大家總結(jié)了關(guān)于Go語言中defer的使用和注意要點,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-09-09
  • go解析svn log生成的xml格式的文件

    go解析svn log生成的xml格式的文件

    這篇文章主要介紹了go解析svn log生成的xml格式的文件的方法,非常的實用,有需要的小伙伴可以參考下。
    2015-04-04
  • 使用Go實現(xiàn)TLS服務(wù)器和客戶端的示例

    使用Go實現(xiàn)TLS服務(wù)器和客戶端的示例

    本文主要介紹了Go實現(xiàn)TLS服務(wù)器和客戶端的示例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Golang二維數(shù)組的使用方式

    Golang二維數(shù)組的使用方式

    之前給大家講過很多二維數(shù)組的知識,今天重點給大家介紹Golang二維數(shù)組的使用方式,通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-05-05
  • Go代碼檢查的推薦工具及使用詳解

    Go代碼檢查的推薦工具及使用詳解

    這篇文章主要為大家介紹了Go代碼檢查的推薦工具及使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • GO語言實現(xiàn)的http抓包分析工具pproxy介紹

    GO語言實現(xiàn)的http抓包分析工具pproxy介紹

    這篇文章主要介紹了GO語言實現(xiàn)的http抓包分析工具pproxy介紹,本文同時對比了Fiddler、Charles等抓包軟件,需要的朋友可以參考下
    2015-03-03
  • go語言實現(xiàn)sqrt的方法

    go語言實現(xiàn)sqrt的方法

    這篇文章主要介紹了go語言實現(xiàn)sqrt的方法,實例分析了Go語言實現(xiàn)計算平方根的技巧,需要的朋友可以參考下
    2015-03-03
  • 詳解Golang time包中的結(jié)構(gòu)體time.Time

    詳解Golang time包中的結(jié)構(gòu)體time.Time

    在日常開發(fā)過程中,會頻繁遇到對時間進行操作的場景,使用 Golang 中的 time 包可以很方便地實現(xiàn)對時間的相關(guān)操作,本文先講解一下 time 包中的結(jié)構(gòu)體 time.Time,需要的朋友可以參考下
    2023-07-07
  • Golang中互斥鎖和讀寫互斥鎖原理及示例代碼

    Golang中互斥鎖和讀寫互斥鎖原理及示例代碼

    在Golang中,互斥鎖是一種基本的同步原語,用于實現(xiàn)對共享資源的互斥訪問,讀寫互斥鎖是一種特殊類型的互斥鎖,它允許多個協(xié)程同時讀取某個共享資源,本文將通過過示例代碼詳細介紹Golang中互斥鎖和讀寫互斥鎖,需要的朋友可以參考下
    2023-05-05
  • Go一站式配置管理工具Viper的使用教程

    Go一站式配置管理工具Viper的使用教程

    Viper是一個方便Go語言應(yīng)用程序處理配置信息的庫,它可以處理多種格式的配置,這篇文章主要為大家介紹了它的具體使用教程,需要的可以參考下
    2023-08-08

最新評論