在线文档 > Golang练习 > 异常(Panic)
在Go 中,panic
通常表示出现了意外错误。 通常我们用它来表示程序正常运行中不应该出现的错误, 或者我们不准备优雅处理的错误。
package main
import "os"
func main() {
// 我们将在整个网站中使用panic来检查意外错误。这是唯一一个设计为panic的程序。
panic("a problem")
// panic的常见用途是在函数返回我们无法处理(或不想处理)的错误值时中止程序。
// 以下是一个示例,如果创建新文件时出现意外错误,则会发生panic。
_, err := os.Create("/tmp/file")
if err != nil {
panic(err)
}
}
运行结果如下:
$ go run panic.go
panic: a problem
goroutine 1 [running]:
main.main()
/.../panic.go:12 +0x47
...
exit status 2
运行此程序将导致它死机,打印 错误消息 和 goroutine 跟踪,并以非零状态退出。
当“main”中的第一个 panic 触发时,程序退出而不到达代码的其余部分。如果你想看到程序尝试创建一个临时文件,请注释掉第一个 panic
。
请注意,与某些使用异常来处理许多错误的语言不同,在 Go 中,尽可能使用错误指示返回值是惯用的方式。