Go panic錯誤處理實例

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