美文网首页
panic和recover实现无renturn返回

panic和recover实现无renturn返回

作者: atdoking | 来源:发表于2021-08-04 23:23 被阅读0次

Recover 是一个Go语言的内建函数,可以让进入宕机流程中的 goroutine 恢复过来,recover 仅在延迟函数 defer 中有效,在正常的执行过程中,调用 recover 会返回 nil 并且没有其他任何效果,如果当前的 goroutine 陷入恐慌,调用 recover 可以捕获到 panic 的输入值,并且恢复正常的执行。

package main

import (
    "fmt"
)

func main()  {
    a := returnN()
    fmt.Println(a)
}
func returnN() (result int) {
    defer func() {
        if p:=recover();p!=nil{
            result = p.(int)
        }
    }()
    panic(3)
}
image.png

执行结果如上图,panic宕机,recover捕捉到了panic输入的3,所以p就是返回异常“3”
p.(int)就将异常转换为int型返回了

相关文章

  • panic和recover实现无renturn返回

    Recover 是一个Go语言的内建函数,可以让进入宕机流程中的 goroutine 恢复过来,recover 仅...

  • go 的异常处理:panic 和 recover

    panic 函数 和 recover 函数 panic 和 recover 在使用方法上更接近于 try/catc...

  • 错误与恢复

    panic和recover 一.声明func panic(interface{}) //尽量少用func reco...

  • 聊聊golang的panic与recover

    序 本文主要研究一下golang的panic与recover panic与recover recover在如下三种...

  • Golang错误处理相关

    错误处理 统一实现任务处理 panic兜底处理 recover

  • panic 和 recover

    什么是 panic? 在 Go 语言中,程序中一般是使用错误来处理异常情况。对于程序中出现的大部分异常情况,错误就...

  • Go 异常处理

    目录 panic和recover 作用 panic 能够改变程序的控制流,调用 panic 后会立刻停止执行当前函...

  • 错误

    错误 错误类型表示 自定义error panic和recover

  • Go语言学习笔记16.异常处理

    error接口 使用: panic和recover panic属于异常,比如数组访问越界、空指针引用,如果显示调用...

  • 2017-12-04

    Golang,Panic,Defer,Recover 在golang中,recover在defer里发挥作用。 一...

网友评论

      本文标题:panic和recover实现无renturn返回

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