Programowanie w Go - #14 panic(), defer(), recover()
Krótki film z programowania w golang o tych trzech zagadnieniach. W sensie czy i kiedy w ogóle używamy panic()
, do czego używamy defer
i jak działa, no i oczywiście przykład użycia recover
. Krótki film, bo i zagadnienie nie jest obszerne, ale postanowiłem wziąć je osobno na tapetę, gdyż w programowaniu w Go, te zagadnienia oczywiście są spotkane, niektóre nawet często (w kodzie).
Programowanie w Go - panic, defer, recover
Zobacz nagranie o tych zagadnieniach
Kod do przykładu z funkcją panic
package main
import (
"io/ioutil"
"os"
)
var user = os.Getenv("USERX")
func main() {
if user == "" {
panic("no value for $USERX")
}
_, err := ioutil.ReadFile("/etc/motd")
if err != nil {
}
}
Kod do przykładu z instrukcją defer
package main
import (
"fmt"
)
func specFunc(m string) {
if rec := recover(); rec != nil {
fmt.Println("Recover: ", rec)
}
fmt.Println(m)
}
func main() {
defer specFunc("tekst")
// specFunc("tekst")
panic("boom")
}