Panic
通常意味著事情出乎意料地錯了。大多數情況下,使用它來正常執行時不應該出現的錯誤,或者不準備妥善處理。
在程式中可使用panic
來檢查意外錯誤。
如果一個函式返回一個我們不知道如何(或想要)處理的錯誤值,那麼panic
的常見用法就是中止。這裡有一個例子,如果在建立一個新檔案時遇到意外錯誤。
執行此程式將導致程式出錯,列印錯誤訊息和goroutine
跟蹤,並退出非零狀態。
注意,與一些使用例外處理許多錯誤的語言不同,在Go中,盡可能使用返回值指示錯誤。
所有的範例程式碼,都放在
F:\worksp\golang
目錄下。安裝Go程式設計環境請參考:/2/23/798.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