在 PHP 中,die()用于停止运行脚本以防止意外行为。在 Go 中,死一个句柄函数的惯用方法是什么?panic()或者return?
你应该使用os.Exit.
Exit 导致当前程序以给定的状态代码退出。通常,代码零表示成功,非零表示错误。程序立即终止;延迟函数不会运行。
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println("Start")
os.Exit(1)
fmt.Println("End")
}
Run Code Online (Sandbox Code Playgroud)
甚至,您可以使用panic,它也会停止正常执行,但在执行停止时抛出错误。
panic 内置函数停止当前 goroutine 的正常执行。当函数 F 调用 panic 时,F 的正常执行会立即停止。任何被 F 推迟执行的函数都以通常的方式运行,然后 F 返回给它的调用者。对于调用者 G 来说,F 的调用就像调用 panic,终止 G 的执行并运行任何延迟函数。这一直持续到正在执行的 goroutine 中的所有函数都以相反的顺序停止。此时,程序终止并报告错误条件,包括 panic 的参数值。这种终止序列称为恐慌,可以由内置函数恢复控制。
package main
import "fmt"
func main() {
fmt.Println("Start")
panic("exit")
fmt.Println("End")
}
Run Code Online (Sandbox Code Playgroud)