Вопрос: Как работает panic/recover и где это уместно?

Go Junior Без компании
Вопрос: Как работает panic/recover и где это уместно?
Ответы
panic — аварийное завершение текущей горутины с раскруткой стека. recover позволяет перехватить panic только внутри defer. ```go package main import "fmt" func safe() { defer func() { if r := recover(); r != nil { fmt.Println("recovered:", r) } }() panic("boom") } func main() { safe() fmt.Println("after") } ``` Уместно для "невозможных" ситуаций (инварианты, ошибки программиста), а не для обычных ошибок ввода/сети.