golang没有类似C中的try catch finlly,但是提供了defer revover panic

defer“延迟” 函数调用返回之前按照先进先出的顺序进行调用defer中的函数。

使用规则:1.defer函数中的参数值再定义时即进行计算。

func a() {
  i := 0
  defer fmt.Println(i)
  i++
  return
}

先进后出原则

func b() {
  for i := 0; i < 4; i++ {
  defer fmt.Print(i)
  }
}

可以读取并设置返回值

func c() (i int) {
  defer func() { i++ }()
  return 1
}

panic "恐慌"函数执行时,意味着函数进入恐慌模式,抛出异常。如果函数有panic函数执行,则想上一层调用者返回panci信息,上一层也按照此逻辑执行,如果goroutine没有处理panic信息,则goroute会异常崩溃,如果是主goroute,则程序崩溃。

#

recover“恢复”用于处理panic抛出的异常信息


有疑问加站长微信联系(非本文作者)