Go panic錯誤處理範例


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