Panic
通常意味着事情出乎意料地错了。大多数情况下,使用它来正常运行时不应该出现的错误,或者不准备妥善处理。
在程序中可使用panic
来检查意外错误。
如果一个函数返回一个我们不知道如何(或想要)处理的错误值,那么panic
的常见用法就是中止。这里有一个例子,如果在创建一个新文件时遇到意外错误。
运行此程序将导致程序出错,打印错误消息和goroutine
跟踪,并退出非零状态。
注意,与一些使用异常处理许多错误的语言不同,在Go中,尽可能使用返回值指示错误。
所有的示例代码,都放在
F:\worksp\golang
目录下。安装Go编程环境请参考:http://www.yiibai.com/go/go_environment.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