go panic时如何让函数返回数据?
2019-04-11 09:17
615 查看
现在有这样一个问题:某函数如果正常执行,返回0,如果panic,则返回1,怎么搞呢?
package main import "fmt" func test() int { defer func() { if err := recover(); err != nil { return 1 } }() var p *int *p = 0 return 0 } func main() { fmt.Println("ret is", test()) for {} }
这样显然不行,因为那个return 1是针对匿名函数的, 而非test函数。
来看一个巧妙的方法:
package main import "fmt" func test() (a int) { defer func() { if err := recover(); err != nil { a = 1 } }() var p *int *p = 0 return 0 } func main() { fmt.Println("ret is", test()) for {} }
OK.
不多说。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接
您可能感兴趣的文章:
相关文章推荐
- pl/sql函数如何返回多行数据
- ajax返回函数json数据如何取值问题
- 如何从PL/pgSQL 函数中返回多行数据
- 如何从文本文件读取数据到二维数组,如何在函数处理后返回二维数组的示例
- Dynamic动态数据类型(例如如何设置IQueryable的类型为函数返回的类型?? )
- 如何让一个函数返回多个值
- Flask04 后台获取请求数据、视图函数返回类型、前台接受响应数据
- 如何解决“文件上传返回JSON数据,在IE下提示下载文件”的问题?
- 【python 】数据类型和返回数据类型的函数
- Flex中如何在Tree控件中指定一个自定义的label函数使其返回的标签名字为叶项目的名称的例子
- 如何让函数返回多个值?
- C/C++函数如何返回struct或class对象
- [PHP]如何在百度(BAE)和新浪(SAE)的云平台使用PHP连接MySQL并返回结果数据
- 如何在.NET MVC中使用jQuery并返回JSON数据
- freopen()函数的使用及如何返回控制台
- yii2.0之-模型中attributeLabels()函数的作用 和修改数据表中的字段后如何更新model中的字段
- [PHP]如何在百度(BAE)和新浪(SAE)的云平台使用PHP连接MySQL并返回结果数据
- 具有自动截断功能的函数:对比:strcpy、strncpy、sprintf、snprintf在写入的数据大于缓冲区的情况下如何处理
- 如何让webapi只返回json格式数据
- 如何点击按钮弹出新窗口,输入数据后返回并刷新页面?