panic 通常意味着发生了意外的错误。我们主要使用它来立即中止程序,处理那些在正常操作中不应发生的错误,或者我们无法优雅处理的错误。
package main
import "os"
func main() {
// 我们将在整个网站中使用 panic 来检查意外错误。这是网站上唯一一个设计为会触发 panic 的程序。
panic("a problem")
// panic 的一个常见用途是当一个函数返回我们不知道如何处理(或不想处理)的错误时,立即中止程序。下面是一个例子,当我们在创建新文件时遇到意外错误时触发 panic。
_, err := os.Create("/tmp/file")
if err != nil {
panic(err)
}
}运行这个程序会导致它触发 panic,打印错误信息和 goroutine 跟踪信息,并以非零状态退出。
➜ go run panic.go
panic: a problem
goroutine 1 [running]:
main.main()
/Users/lazy/i/go-example/panic/panic.go:7 +0x2c
exit status 2当 main 中的第一个 panic 被触发时,程序会在没有执行剩余代码的情况下退出。如果你希望看到程序尝试创建一个临时文件,可以将第一个 panic 注释掉。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。