Sobes.tech
Back to questions
Middle — Middle+
71

Каким образом нужно правильно объявить механизм Recovery в системе?

Companies where asked
Самокат Тех

Answer from AI

sobes.tech AI

В Go механизм recover используется для перехвата паники (panic) и предотвращения аварийного завершения программы. Правильное объявление и использование recover должно происходить внутри функции, отложенной с помощью defer. Это позволяет поймать панику, если она произошла в вызываемой функции, и обработать её.

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

func safeCall() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Recovered from panic:", r)
        }
    }()

    // Код, который может вызвать панику
    panic("something went wrong")
}

Ключевые моменты:

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