Panic
通常意味着事情出乎意料地错了。大多数情况下,使用它来正常运行时不应该出现的错误,或者不准备妥善处理。
在程序中可使用panic
来检查意外错误。
如果一个函数返回一个我们不知道如何(或想要)处理的错误值,那么panic
的常见用法就是中止。这里有一个例子,如果在创建一个新文件时遇到意外错误。
运行此程序将导致程序出错,打印错误消息和goroutine
跟踪,并退出非零状态。
注意,与一些使用异常处理许多错误的语言不同,在Go中,尽可能使用返回值指示错误。
所有的示例代码,都放在
F:\worksp\golang
目录下。安装Go编程环境请参考:/tutorial/detail-5562.html
panic.go
的完整代码如下所示 -
package main import "os" func main() { // We'll use panic throughout this site to check for // unexpected errors. This is the only program on the // site designed to panic. panic("a problem") // A common use of panic is to abort if a function // returns an error value that we don't know how to // (or want to) handle. Here's an example of // `panic`king if we get an unexpected error when creating a new file. _, err := os.Create("/tmp/file") if err != nil { panic(err) } }
执行上面代码,将得到以下输出结果 -
F:\worksp\golang>go run panic.go panic: a problem goroutine 1 [running]: panic(0x4679c0, 0xc042044180) D:/software/golang/src/runtime/panic.go:500 +0x1af main.main() F:/worksp/golang/panic.go:10 +0x74 exit status 2