Sobes.tech
Middle
155
questionbank

Что такое функция recover в Go?

Ответ от нейросети

sobes.tech AI

Функция recover в Go используется для перехвата паники (panic).

  • recover() возвращает nil, если паника не происходит или если она не была вызвана внутри отложенной (defer) функции.
  • Если panic вызвана, и recover() вызывается внутри defer-функции, recover() перехватывает значение, переданное в panic, и прекращает распространение паники.
  • Без recover паника прерывает нормальное выполнение программы.

Пример использования:

package main

import "fmt"

func main() {
	defer func() { // Отложенная функция, где используется recover
		if r := recover(); r != nil {
			fmt.Println("Recovered from panic:", r)
		}
	}()

	fmt.Println("Программа начинается")
	panic("Что-то пошло не так!") // Вызываем панику
	fmt.Println("Этот код не будет выполнен")
}