Golang错误处理:理解恐慌

Golang错误处理:理解恐慌,go,Go,我是一个新手,我正在努力掌握恐慌的功能 到目前为止,我一直在使用类似的语法来处理程序中的错误: func Find(i int) (item, error) { // some code if (not found) { return nil, errors.New('Not Found') } // if found: return myItem, nil } 然后我偶然发现了恐慌函数。我很难理解它。是否可以消除return语句中的错误并执行类似的操作 fu

我是一个新手,我正在努力掌握恐慌的功能

到目前为止,我一直在使用类似的语法来处理程序中的错误:

func Find(i int) (item, error) {
  // some code

  if (not found) {
    return nil, errors.New('Not Found')
  }

  // if found:
  return myItem, nil

}
然后我偶然发现了恐慌函数。我很难理解它。是否可以消除return语句中的错误并执行类似的操作

func Find(i int) item {
  // some code

  if (not found) {
    panic('Not found')
  }

  return myItem

}
如果是,调用函数时如何处理错误

非常感谢您想要使用恢复功能

func Find(i int) item {
    defer func() {
        if e := recover(); e != nil {
            // e is the interface{} typed-value we passed to panic()
            fmt.Println("Whoops: ", e) // Prints "Whoops: Not Found"
        }
    }()

    if (not found)
    {    panic("Not Found")
    }

    return myItem
 }       
请参阅:

。在这种情况下,不要使用它。这只适用于特殊情况,因为世界处于着火状态。另外值得注意的是: