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

    文章

    3261

    浏览量

    57674
  • go语言
    +关注

    关注

    1

    文章

    158

    浏览量

    9047
  • 调用函数
    +关注

    关注

    0

    文章

    11

    浏览量

    2304
收藏 人收藏

    评论

    相关推荐

    SN74ALVC164245与SNALVC164245-EP区别在哪里呢?

    SN74ALVC164245与它的增强型器件SNALVC164245-EP区别在哪里呢?我对比了数据手册发现两种产品在电气性能上并没有什么差别,这个“增强”体现在哪里?
    发表于 12-12 08:31

    请问一下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

    LM393和LMV393的区别在哪里?

    如图所示,LM393和LMV393的参数对照,LMV393是LM393的低电压版本,并且静态电流和温度特性都好 但是我用这颗料在鼠标上,用于鼠标左右按键的控制,想询问这两颗料其他的差别在哪?比如说响应速度?
    发表于 08-15 06:48

    TLV4112IDGN和TLV4112IDGN的主要区别在哪

    TLV4112IDGN和TLV4112IDGN的主要区别在哪
    发表于 08-05 07:47

    d类放大器和ab类区别在哪

    d类放大器和ab类区别在哪 在撰写一篇关于D类放大器和AB类放大器区别的详尽、详实、细致的文章之前,我们首先需要了解这两种放大器的基本概念、工作原理、优缺点以及应用场景。 标题:D类放大器与AB类
    的头像 发表于 06-10 15:48 733次阅读

    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 4206次阅读

    电池内部短路与外部短路区别在哪

    电池内部短路与外部短路区别在哪? 电池是一种能够将化学能转化为电能的装置,广泛应用于电子设备、交通工具、储能设备等领域。在使用电池过程中,可能会出现两种类型的短路,分别是电池内部短路和电池外部短路
    的头像 发表于 02-18 15:29 2237次阅读

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

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

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

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

    SD-WAN带宽与IDC带宽的区别在哪

    SD-WAN带宽与IDC带宽的区别在哪? 随着云计算和大数据时代的到来,全球企业对网络带宽的需求不断增加。在这方面,SD-WAN和IDC成为两个重要的网络解决方案。然而,SD-WAN带宽和IDC带宽
    的头像 发表于 01-17 16:18 860次阅读

    车载UPS与一般UPS区别在哪里?车载有哪些优势特点?

    车载UPS与一般UPS区别在哪里?车载有哪些优势特点? 车载UPS是一种特殊的不间断电源系统,专门设计用于车辆上使用的电子设备。与一般的UPS相比,车载UPS有一些独特的特点和优势。下面将详细探讨
    的头像 发表于 01-11 14:43 1298次阅读

    接地电阻与接地阻抗的区别在哪

    接地电阻与接地阻抗的区别在哪里  接地电阻是指接地系统中的电阻元件,通过连接到地下的电极与大地形成一个低阻抗路径,用来确保接地系统的可靠性和安全性。而接地阻抗则更为复杂,它是指接地系统在交流电下
    的头像 发表于 12-20 15:23 3403次阅读