• [Go 笔记]关于 Panic和 Recover


    今天看了一下Go语言,在讲到以往其他语言的异常的时候,Go采用了不同的方式

    Panic 函数类似于抛出一个异常,这个异常会中断当前的执行函数

    在 defer 的延迟执行环境中,调用 recover() ,如果 recover() 返回的是 nil表示正常执行,如果非 nil 表示这个 defer延迟环境中”捕获“到了这个 panic

    recover() 函数只有在 defer 包裹的执行代码块中能够使用。

    func throwsPanic( raisefunc func() ) (b bool){
            defer func(){
                     if x:= recover(); x != nil {
                           b = true
                     }
            }
      
            raisefunc()/* 这里的回调可能会抛出异常*/
            return
    }
     

    当在函数 throwsPanic 中 raisefunc() 引起panic的时候,defer代码块中的函数会执行,调用 recover() 函数

    如果存在异常,改变返回值为 true

    文章属原创,转载请注明出处 联系作者: Email:zhangbolinux@sina.com QQ:513364476
  • 相关阅读:
    JavaScript类型转换
    JavaScript中的 typeof,null,和undefined
    JavaScript循环
    JavaScript条件语句
    JavaScript运算符
    JavaScript字符串
    JavaScript事件
    JavaScript对象,函数,作用域
    JavaScript基础
    数值数据的特征预处理
  • 原文地址:https://www.cnblogs.com/Bozh/p/2829400.html
Copyright © 2020-2023  润新知