博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Go 笔记]关于 Panic和 Recover
阅读量:5153 次
发布时间:2019-06-13

本文共 586 字,大约阅读时间需要 1 分钟。

今天看了一下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

转载于:https://www.cnblogs.com/Bozh/archive/2012/12/22/2829400.html

你可能感兴趣的文章
给“System.Windows.Controls.DataGridColumnCollection”类型的集合添加值时发生异常。 [Line: 31 Position: 172]...
查看>>
PTA-栈
查看>>
linux下安装samba
查看>>
[置顶] 重复造轮子:注释的使用
查看>>
DEV控件之GridControl导出到Excel
查看>>
MySQL数据库的索引类型
查看>>
javascript设计模式-迭代器模式(Iterator)
查看>>
供参考的前端网站链接
查看>>
阿里官方Java代码规范标准
查看>>
大一下半年学期总结
查看>>
Count And Say
查看>>
解决 Ubutnu16.04 + opencv4.1 源码编译错误 Makefile:160: recipe for target 'all' failed
查看>>
python矩阵
查看>>
【转】ASCII码表在线查询
查看>>
vim插件
查看>>
【转】TestFlight APP测试(IOS如何让上架前给其他人测试)
查看>>
websocket --工作原理
查看>>
xampp安装及配置
查看>>
C++中四种类型转换方式
查看>>
推荐一些国内的Jquery CDN免费服务
查看>>