| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package main
- import "fmt"
- func main() {
- // foo1()
- // foo2()
- foo3()
- }
- func getSomeVars() string {
- fmt.Println("getSomeVars execution")
- return "getSomeVars result"
- }
- func foo1() {
- defer fmt.Println("After work")
- defer fmt.Println(getSomeVars())
- fmt.Println("Some useful work")
- }
- func foo2() {
- defer fmt.Println("After work")
- defer func() {
- fmt.Println(getSomeVars())
- }()
- fmt.Println("Some useful work")
- }
- // Паника
- func deferTest() {
- defer func() {
- if err := recover(); err != nil {
- fmt.Println("panic happend:", err)
- }
- }()
- fmt.Println("Some useful work")
- panic("something bad happend")
- return
- }
- func foo3() {
- deferTest()
- return
- }
|