package main

import "fmt"

// Существует отложенное выполнение функции
// Удобно при закрытии какого-либо ресурса

/*
func getSomeVars() string {
	fmt.Println("getSomeVars execution")
	return "getSomeVars result"
}

func main() {
	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 main() {
	deferTest()
	return
}
