本文摘自php中文网,作者(*-*)浩,侵删。

panic (推荐学习:go)
当遇到不可恢复的错误状态的时候,如数组访问越界、空指针引用等,这些运行时错误会引起panic异常。
golang中没有try ... catch...这类异常捕获语句,但是提供了panic和recover内建函数,用于抛出异常以及异常的捕获。
? panic、 recover 参数类型为 interface{},因此可抛出任何类型对象。
? 如果程序出现了致命的错误,导致整个程序无法进行下去,golang提供了panic函数,用来实现程序的退出。
? 当程序发生 panic 时,使用 recover 可以重新获得对该程序的控
制。
? 不是所有的panic异常都来自运行时,直接调用内置的panic函数也会引发panic异常
? panic函数接受任何值作为参数。
(1)panic的使用
①延迟调试中引发的错误,可被后续延迟调试捕获,但仅最后错误可被捕获。
1 2 3 4 5 6 7 8 |
|
②当函数发生 panic 时,它会终止运行,在执行完所有的延迟函数后,程序控制返回到该函数的调用方。这样的过程会一直持续下去,直到当前协程的所有函数都返回退出,然后程序会打印出 panic 信息,接着打印出堆栈跟踪,最后程序终止。
如果函数没有 panic,调用 recover 函数不会获取到任何信息,也不会影响当前进程。
demo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
以上就是golang panic可以捕获标准错误吗的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
go语言sync包的学习(mutex、waitgroup、cond)
手撸golang 仿spring ioc/aop 之8 扫码3
更多相关阅读请进入《golang》频道 >>

Go语言101
一个与时俱进的Go编程知识库。