Go by Example: Panic

panic は通常、何かが予期せず誤った結果になったことを意味します。 ほとんどの場合、通常の操作では起こるはずがない、すなわち、 うまく扱えないエラーが起きたときに、異常終了させるために使います。

package main
import "os"
func main() {

予期せぬエラーを確認するために、panic を使います。 これは、panic するために作られた唯一のプログラムです。

    panic("a problem")

panic の一般的な使い方は、ある関数が扱い方を知らない (または、扱いたくない) エラー値を返したときに、 異常終了させることです。 新規ファイル作成時に予期せぬエラーが発生したら panic する例は、次の通りです。

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

このプログラムを実行すると、panic を引き起こし、 エラーメッセージとゴルーチンのトレースが表示され、 非ゼロのステータスで終了します。

main の最初の panic が起きると、プログラムは残りのコードに 到達することなく終了します。一時ファイルを作成するプログラムを 試したい場合は、最初の panic をコメントアウトしてください。

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

多くのエラー処理に例外を使う言語とは異なり、Go では可能な限り エラーを示す戻り値を使うのが慣習であることに注意してください。

Next example: Defer.