美文网首页
go中defer的 执行顺序

go中defer的 执行顺序

作者: 小ocean | 来源:发表于2021-01-05 16:25 被阅读0次

如果一个函数中有多个defer语句,它们会以LIFO(后进先出)的顺序执行,哪怕函数或某个延迟调用发生错误,这些调用依旧会被执


func TestDeferFunc(t *testing.T) {

defer fmt.Println("aaaaaaaaaaaaaaaa")

defer fmt.Println("bbbbbbbbbbbbbbbb")

//调用一个函数,导致内存出问题,除数不能为0

  defer func() {

testSub(0)

}()

defer fmt.Println("cccccccccccccccc")
}
//输出结果:
//先进后出原则
//cccccccccccccccc
//bbbbbbbbbbbbbbbb
//aaaaaaaaaaaaaaaa
//panic: runtime error: integer divide by zero

相关文章

  • Go Defer

    Go Defer 如果函数里面有多条defer指令,他们的执行顺序是反序,即后定义的defer先执行。 defer...

  • 用匿名函数巧妙验证go语言中defer执行顺序

    defer的执行顺序 在go语言当中,defer通常是在函数当中使用。当函数执行到最后一行代码(包括return)...

  • defer

    个人观点,欢迎指正 1.defer的执行顺序 defer的执行顺序为先进后出,先遇到的defer语句,后执行,类似...

  • go defer易错知识总结

    目录 defer执行时机 defer执行顺序 defer与return谁先谁后 函数包含多个Panic,defer...

  • 面试题总结

    不断更新中,欢迎帮忙补充 defer的执行顺序? slice底层? map是线程安全的吗? defer的执行时机?...

  • 异常

    1、error接口 2、defer 你可以在Go函数中添加多个defer语句,当函数执行到最后时,这些defer语...

  • Go:return 与 defer的执行顺序

    我将下面的代码放入了 double.go 文件内 执行go build -gcflags "-N -l" -o t...

  • GO中defer关键字

    defer关键字在go中用于return之前执行,在golang官方文档中有说明。defer的用法类似java中的...

  • 『go成长之路』 defer 作用、典型用法以及多个defer调

    预习内容 defer 的作用有哪些? 多个 defer 的执行顺序是怎样的? defer,return,函数返回值...

  • 深入理解 Go-Defer的机制

    defer 的作用和执行时机 go 的 defer 语句是用来延迟执行函数的,而且延迟发生在调用函数 return...

网友评论

      本文标题:go中defer的 执行顺序

      本文链接:https://www.haomeiwen.com/subject/lbtooktx.html