サンプルで学ぶ Go 言語:Panic

panic は予期せぬ問題が起きたことを示すために使う。 これは普通は起きるはずがない問題が起きたり、うまく対処できない問題が起きた場合に、なるべく早くプログラムを停止させるために使う。

package main
import "os"
func main() {

このウェブサイトでは、予期せぬエラーが発生した場合に panic を使う。 この行だけが、意図的に panic を呼んでいる箇所である。

    panic("a problem")

関数がエラーを返し、そのエラーにどう対処すべきがわからない(または対処したくない)場合に、panic を呼んでプログラムを中断するのは、panic の典型的な使い方である。 この例では、ファイルを作るときにエラーが発生したら、panic を呼んでいる。

    _, err := os.Create("/tmp/file")
    if err != nil {
        panic(err)
    }
}

プログラムを実行するとパニックが発生し、 エラーメッセージとゴルーチンのトレースが表示され、 非ゼロのステータスでプログラムは終了する。

$ go run panic.go
panic: a problem
goroutine 1 [running]:
main.main()
    /.../panic.go:12 +0x47
...
exit status 2

例外を使って多くのエラーを処理する言語とは違って、 Go ではエラーの有無を返り値として返すのが普通であることに注意する。

次の例:Defer