Go 慎用panic,panic是Go语言中的一个内置函数,它终止正常的控制流程并引发恐慌(panicking),导致程序停止执行。出现普通错误时,并不提倡这种做法,因为程序将停止执行,并且没有任何回旋余地。如下程序表明,panic导致程序立即停止执行。
package main
import (
"fmt"
)
func main() {
fmt.Println("This is executed")
panic("Oh no. I can do no more. Goodbye.")
fmt.Println("This is not executed")
}
运行这个示例将引发panic,导致程序崩溃。
调用panic后,程序将停止执行,因此打印This is not executed的代码行根本没有机会执行。
在Go代码中,常常滥用下面的做法,这实际是说:朋友,咱们无路可走,只能让程序崩溃了。在有些情况下,这样做是合适的,但通常不应这样做。
if err != nil {
panic(err)
}
在下面的情形下,使用panic可能是正确的选择。
- 程序处于无法恢复的状态。这可能意味着无路可走了,或者再往下执行程序将带来更多的问题。在这种情况下,最佳的选择是让程序崩溃。
-
发生了无法处理的错误。
酷客网相关文章:
评论前必须登录!
注册