golang异常处理
2017-01-15 00:00
253 查看
package main import ( "fmt" ) type TryTarget func() type CatchTarget func() func TryAndCatch(target TryTarget, catch CatchTarget) { defer func() { if err := recover(); err != nil { catch() } }() target() } func main() { TryAndCatch(func() { panic("抛出异常") }, func() { fmt.Println("异常恢复") }) }
先别说话,亮出代码,关于golang程序的异常处理涉及到三个关键字:
1.panic 把异常抛出去,一旦抛出异常该函数将立刻终止运行,下一步自动跳转到defer语句中
2.defer 语句中执行recover捕获异常,获取异常的具体信息
相关文章推荐
- Go 语言 Channel 实现原理精要
- Go语言将支持Android
- 如何优雅地处理前端异常?
- Golang 源码阅读 os.File
- Golang byte buffers tricks
- 在Windows下编译golang
- dos下用recover修复损坏的TXT文件
- Docker与Golang的巧妙结合
- C#异常处理详解
- 轻松学习C#的异常处理
- PHP错误和异常处理功能模块示例
- PHP异常处理Exception类
- golang 调用 php7详解及实例
- 详谈.NET的异常处理
- defer属性导致引用JQuery的页面报“浏览器无法打开网站xxx,操作被中止”错误的解决方法
- 深入理解javascript中defer的作用
- JS异常处理的一个想法(sofish)
- PHP 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
- JS脚本defer的作用示例介绍
- PHP如何抛出异常处理错误