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

Go語言使用defer+recover解決panic導(dǎo)致程序崩潰的問題

 更新時間:2021年09月23日 15:12:08   作者:cui_yonghua  
如果協(xié)程出現(xiàn)了panic,就會造成程序的崩潰,這時可以在goroutine中使用recover來捕獲panic,進(jìn)行處理,本文就詳細(xì)的介紹一下,感興趣的可以了解一下

案例:如果我們起了一個協(xié)程,但這個協(xié)程出現(xiàn)了panic,但我們沒有捕獲這個協(xié)程,就會造成程序的崩潰,這時可以在goroutine中使用recover來捕獲panic,進(jìn)行處理,這樣主線程不會受到影響。

代碼如下:

package main

import (
	"fmt"
	"time"
)

func sayHello()  {
	for i := 0; i < 10; i++ {
		time.Sleep(time.Second)
		fmt.Println("hello world")
	}
}
func test()  {
	//使用 defer + recover
	defer func() {
		//捕獲test拋出的panic
		if err := recover();err!=nil{
			fmt.Println("test發(fā)生錯誤",err)
		}
	}()
	//定義一個map
	var myMap map[int]string
	myMap[0] = "golang" //error
}

func main() {

	go sayHello()
	go test()

	for i := 0; i < 10; i++ {
		fmt.Println("main() ok=",i)
		time.Sleep(time.Second)
	}
}

執(zhí)行結(jié)果如下圖:

在這里插入圖片描述

到此這篇關(guān)于Go語言使用defer+recover解決panic導(dǎo)致程序崩潰的問題的文章就介紹到這了,更多相關(guān)Go panic程序崩潰內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Go語言zip文件的讀寫操作

    Go語言zip文件的讀寫操作

    本文主要介紹了Go語言zip文件的讀寫操作,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Golang的引用類型和指針的使用與區(qū)別

    Golang的引用類型和指針的使用與區(qū)別

    本文詳細(xì)介紹了Golang中的引用類型和指針的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • Go使用Google?Gemini?Pro?API創(chuàng)建簡單聊天機(jī)器人

    Go使用Google?Gemini?Pro?API創(chuàng)建簡單聊天機(jī)器人

    這篇文章主要為大家介紹了Go使用Google?Gemini?Pro?API創(chuàng)建簡單聊天機(jī)器人實(shí)現(xiàn)過程詳解,本文將通過最新的gemini?go?sdk來實(shí)現(xiàn)命令行聊天機(jī)器人
    2023-12-12
  • Go實(shí)現(xiàn)分布式系統(tǒng)高可用限流器實(shí)戰(zhàn)

    Go實(shí)現(xiàn)分布式系統(tǒng)高可用限流器實(shí)戰(zhàn)

    這篇文章主要為大家介紹了Go實(shí)現(xiàn)分布式系統(tǒng)高可用限流器實(shí)戰(zhàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • golang 語言中錯誤處理機(jī)制

    golang 語言中錯誤處理機(jī)制

    Golang 的錯誤處理方式可能和這些你熟悉的語言有所不同,今天通過本文給大家分享golang 語言中錯誤處理機(jī)制,感興趣的朋友一起看看吧
    2021-08-08
  • 詳解Golang中單元測試的使用

    詳解Golang中單元測試的使用

    單元測試是檢測你寫的一個函數(shù)是否具備安全性的一次檢測,這篇文章主要為大家詳細(xì)介紹了Golang中單元測試的具體使用,希望對大家有所幫助
    2023-07-07
  • Go語言使用Redis和Etcd實(shí)現(xiàn)高性能分布式鎖

    Go語言使用Redis和Etcd實(shí)現(xiàn)高性能分布式鎖

    這篇文章主要為大家介紹了Go語言使用Redis實(shí)現(xiàn)高性能分布式鎖示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • GORM框架實(shí)現(xiàn)分頁的示例代碼

    GORM框架實(shí)現(xiàn)分頁的示例代碼

    本文主要介紹了GORM框架實(shí)現(xiàn)分頁的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-03-03
  • 深入了解Go語言的基本語法與常用函數(shù)

    深入了解Go語言的基本語法與常用函數(shù)

    這篇文章主要為大家詳細(xì)介紹一下Go語言中的基本語法與常用函數(shù),文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Go語言有一定的幫助,需要的可以參考一下
    2022-07-07
  • 詳解golang中make與new的異同點(diǎn)和用法

    詳解golang中make與new的異同點(diǎn)和用法

    這篇文章將給大家介紹了go語言中函數(shù)new與make的使用和區(qū)別,關(guān)于go語言中new和make是內(nèi)建的兩個函數(shù),主要用來創(chuàng)建分配類型內(nèi)存,文中通過代碼示例介紹的非常詳細(xì),具有一定的參考價值,需要的朋友可以參考下
    2024-01-01

最新評論