Go podle Příkladů: Panika (panic)

Význam klíčového slova panic je že se stalo něco neočekávaně špatného. Většinou ho používáme pro rychlé selhání během chyb které by se během normálního běhu neměly stát a nebo které nejsme připraveni elegantně ošetřit.

package main
import "os"
func main() {

Na této stránce použijeme panic pro kontrolu nečekaných chyb. Tohle je jediný program na stránce, který je navržen pro selhání na paniku.

    panic("problém")

Běžné použití paniky je k přerušení, pokud funkce vrátí chybovou hodnotu kterou nevíme jak (nebo nechceme) ošetřit. Zde je příklad vyvolání panic když dostaneme neočekávanou chybu během vytváření nového souboru.

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

Spuštění tohoto programu způsobí že spadne na paniku, vypíše chybu a stacktrace gorutiny, a skončí s ne-nulovým stavem.

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

Všimněte si, že zatímco v některých jazycích které používají výjimky pro ošetřování mnoha chyb, v Go je idiomatické použití návratových hodnot vracejících chybu všude kde je to možné.

Další příklad: Odložené vykonání defer.