精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

log.Fatal和panic函數的區別在哪

冬至配餃子 ? 來源:GoLang全棧 ? 作者:小錕哥哥 ? 2022-08-17 11:01 ? 次閱讀

要熟悉兩者區別之前,需要先了解 os.Exit() 函數。

我這里截一張 Go 源碼里面的解釋:

pYYBAGL8WYuAMsUmAAC9AkxPSW4282.png

我們需要注意兩點:

1、應用程序會被馬上退出

2、defer 函數不會被執行

你可以理解這就是直接 kill -9 程序,不給任何喘氣的機會。

現在我們再來看看 log.Fatal 函數的定義:

pYYBAGL8WZqAL15tAABXom8ng4c504.png

整體來說,他在 os.Exit() 之前做了一個日志輸出。

他的流程可以理解是:

1、打印輸出內容

2、退出應用程序

3、defer 函數還是不會執行

最后我們來看下 panic 的定義:

pYYBAGL8WaiAO3JTAADTJcS_EVA507.png

我們需要注意的是:

1、當前函數立刻會停止執行(不是主程序)

2、defer 函數執行

3、返回給調用者 caller

4、調用函數假裝也收到了 panic 函數,從而他們也會執行以上的操作

5、遞歸執行,直到最上層函數,如果都沒函數處理這個異常,應用程序就會停止

這和其他語言里面的 try catch 很像,但是 Go 語言里面沒有類似的語法糖。



審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 應用程序
    +關注

    關注

    37

    文章

    3240

    瀏覽量

    57600
  • go語言
    +關注

    關注

    1

    文章

    158

    瀏覽量

    9028
  • 調用函數
    +關注

    關注

    0

    文章

    11

    瀏覽量

    2299
收藏 人收藏

    評論

    相關推薦

    請問一下LM4951A與LM4951的區別在哪里?

    請問一下LM4951A與LM4951的區別在哪里? 我們有將LM4951替換LM4951A后,產品出現POP和CLICK音的問題。 LM4951的原理圖見附件。
    發表于 10-18 06:27

    LM3886尾綴T和TF之間主要區別在哪里?

    LM3886尾綴T和TF之間主要區別在哪里? 我一直用LM3886TF,但最近缺貨改用LM3886T替代,但是發現LM3886T工作相對要熱一些
    發表于 10-09 08:30

    請問LM318和LM318-N的區別在哪里?

    請問LM318和LM318-N的區別在哪里?
    發表于 08-20 07:31

    TLV4112IDGN和TLV4112IDGN的主要區別在哪

    TLV4112IDGN和TLV4112IDGN的主要區別在哪
    發表于 08-05 07:47

    d類放大器和ab類區別在哪

    d類放大器和ab類區別在哪 在撰寫一篇關于D類放大器和AB類放大器區別的詳盡、詳實、細致的文章之前,我們首先需要了解這兩種放大器的基本概念、工作原理、優缺點以及應用場景。 標題:D類放大器與AB類
    的頭像 發表于 06-10 15:48 ?667次閱讀

    erase before programing和blank check before programing在下載時區別在哪

    請教erase before programing 和blank check before programing在下載時區別在哪?選erase before programing好像下載不進去 報Erase not feasible
    發表于 04-29 08:34

    請問有極性電容和無極性電容的區別在哪

    請問有極性電容和無極性電容的區別在哪? 極性電容和無極性電容是電子領域中常見的兩種電容器。它們在結構、應用、特性和技術規范等方面存在很大差異。下面將為您詳細介紹極性電容和無極性電容的區別,以幫助
    的頭像 發表于 02-21 11:30 ?3918次閱讀

    電池內部短路與外部短路區別在哪

    電池內部短路與外部短路區別在哪? 電池是一種能夠將化學能轉化為電能的裝置,廣泛應用于電子設備、交通工具、儲能設備等領域。在使用電池過程中,可能會出現兩種類型的短路,分別是電池內部短路和電池外部短路
    的頭像 發表于 02-18 15:29 ?2110次閱讀

    什么是PWM和SPWM波形?兩者的區別在哪

    什么是PWM和SPWM波形?兩者的區別在哪? PWM(脈寬調制)和SPWM(正弦脈寬調制)都是常用于控制和調節電力設備的波形方法。它們的主要區別在于波形的形狀和應用領域。下面我們將詳細介紹PWM
    的頭像 發表于 02-05 16:36 ?3560次閱讀

    溫補晶振和恒溫晶振的區別在哪

    溫補晶振和恒溫晶振的區別在哪? 溫補晶振和恒溫晶振是電子行業中常見的兩種晶振器件,它們在準確頻率輸出和穩定性等方面有所不同。下面將詳細介紹這兩種晶振器的區別。 溫補晶振是指通過特定的溫度補償電路來
    的頭像 發表于 01-24 13:45 ?1066次閱讀

    SD-WAN帶寬與IDC帶寬的區別在哪

    SD-WAN帶寬與IDC帶寬的區別在哪? 隨著云計算和大數據時代的到來,全球企業對網絡帶寬的需求不斷增加。在這方面,SD-WAN和IDC成為兩個重要的網絡解決方案。然而,SD-WAN帶寬和IDC帶寬
    的頭像 發表于 01-17 16:18 ?825次閱讀

    車載UPS與一般UPS區別在哪里?車載有哪些優勢特點?

    車載UPS與一般UPS區別在哪里?車載有哪些優勢特點? 車載UPS是一種特殊的不間斷電源系統,專門設計用于車輛上使用的電子設備。與一般的UPS相比,車載UPS有一些獨特的特點和優勢。下面將詳細探討
    的頭像 發表于 01-11 14:43 ?1221次閱讀

    接地電阻與接地阻抗的區別在哪

    接地電阻與接地阻抗的區別在哪里? 接地電阻是指接地系統中的電阻元件,通過連接到地下的電極與大地形成一個低阻抗路徑,用來確保接地系統的可靠性和安全性。而接地阻抗則更為復雜,它是指接地系統在交流電下
    的頭像 發表于 12-20 15:23 ?3126次閱讀

    普通開關和霍爾開關區別在哪里?

    普通開關和霍爾開關區別在哪里?? 普通開關和霍爾開關是兩種常用的電子開關,它們在結構、工作原理和應用方面存在著一些重要的區別。 首先,普通開關是一種機械式開關,它通常由一個活動的手柄或按鈕控制。當
    的頭像 發表于 12-18 15:28 ?857次閱讀

    異步電路和同步電路區別在哪

    異步電路和同步電路區別在哪? 異步電路和同步電路是兩種不同的電路設計方法,它們在功能、工作原理和應用領域上有著顯著的差異。下面將詳細介紹異步電路和同步電路的區別。 異步電路是一種電子電路,其中的各個
    的頭像 發表于 12-07 10:53 ?3352次閱讀