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

    文章

    3126

    浏览量

    56315
  • go语言
    +关注

    关注

    1

    文章

    156

    浏览量

    8919
  • 调用函数
    +关注

    关注

    0

    文章

    11

    浏览量

    2257
收藏 人收藏

    评论

    相关推荐

    什么是PWM和SPWM波形?两者的区别在哪

    什么是PWM和SPWM波形?两者的区别在哪? PWM(脉宽调制)和SPWM(正弦脉宽调制)都是常用于控制和调节电力设备的波形方法。它们的主要区别在于波形的形状和应用领域。下面我们将详细介绍PWM
    的头像 发表于 02-05 16:36 478次阅读

    温补晶振和恒温晶振的区别在哪

    温补晶振和恒温晶振的区别在哪? 温补晶振和恒温晶振是电子行业中常见的两种晶振器件,它们在准确频率输出和稳定性等方面有所不同。下面将详细介绍这两种晶振器的区别。 温补晶振是指通过特定的温度补偿电路
    的头像 发表于 01-24 13:45 273次阅读

    变阻二极管与普通二极管的区别在哪

    变阻二极管与普通二极管的区别在哪? 在日常生活和电子产品中,我们经常会遇到二极管。二极管是一种常见的电子器件,旨在控制电流的流动方向。值得注意的是,二极管分为多种类型,其中最常见的是普通二极管
    的头像 发表于 01-12 14:44 493次阅读

    防水变压器跟防雨变压器的区别在哪里?

    防水变压器跟防雨变压器的区别在哪里? 防水变压器和防雨变压器都是为了保护变压器免受雨水侵蚀的设备,在某种程度上它们有共同之处,但也有一些区别。本文将详细探讨防水变压器和防雨变压器的区别。 首先,我们
    的头像 发表于 12-26 14:17 182次阅读

    普通开关和霍尔开关区别在哪里?

    普通开关和霍尔开关区别在哪里?  普通开关和霍尔开关是两种常用的电子开关,它们在结构、工作原理和应用方面存在着一些重要的区别。 首先,普通开关是一种机械式开关,它通常由一个活动的手柄或按钮控制
    的头像 发表于 12-18 15:28 345次阅读

    异步电路和同步电路区别在哪

    异步电路和同步电路区别在哪? 异步电路和同步电路是两种不同的电路设计方法,它们在功能、工作原理和应用领域上有着显著的差异。下面将详细介绍异步电路和同步电路的区别。 异步电路是一种电子电路,其中的各个
    的头像 发表于 12-07 10:53 1087次阅读

    请问PLC与单片机的本质区别在哪里?

    PLC与单片机的本质区别在哪里?
    发表于 11-09 06:04

    串级PID比单级PID区别在哪里?

    串级PID比单级PID区别在哪
    发表于 10-16 07:46

    ov2640模组和ov2640模块区别在哪

    ov2640模组和ov2640模块区别在哪
    发表于 10-07 06:26

    什么是工业级晶振?跟普通晶振区别在哪

    晶振行业的人就都知道晶振分类很多,虽说使用工业级晶振的客户朋友没有普通晶振那么多,但是也有不少客户朋友咨询。说到这里可能有的人就要问到了:什么是工业级晶振?跟普通晶振区别在哪?相较之下有什么特点吗?
    的头像 发表于 09-20 11:11 422次阅读

    PLL和DLL都是锁相环,区别在哪里?

    PLL和DLL都是锁相环,区别在哪里?  PLL和DLL都是常用的锁相环(Phase Locked Loop)结构,在电路设计中具有广泛的应用。它们的共同作用是将输入信号和参考信号的相位差控制在一定
    的头像 发表于 09-02 15:06 1767次阅读

    Linux Kernel Panic的产生的原因?

    链,在panic log的前面几行已经显示了kernel panic的代码位置,但这个位置是相对于产生panic函数的偏移,你并不知道它到底
    发表于 06-15 06:24

    请问NUC970系列和NUC980系列主要区别在哪里?

    请问NUC970系列和NUC980系列主要区别在哪里?
    发表于 06-14 11:00

    陶瓷、高频、普通PCB板材区别在哪

    陶瓷、高频、普通PCB板材区别在哪? (以下文字均从网络转载,欢迎大家补充,指正。) 陶瓷基板是特种pcb板材的一种,具有很好的导热效果,绝缘性能,以及较高的介电常数,在散热领域终端产品使用广泛
    发表于 06-06 14:41

    模拟锁相环与数字锁相环的主要区别在哪里?

    模拟锁相环与数字锁相环的主要区别在哪里?
    发表于 04-24 10:48