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 ではエラーの有無を返り値として返すのが普通であることに注意する。