Back to questions
Купер
Junior — Middle
84
Можете объяснить концепцию восстановления после сбоев в языке Go?
Companies where asked
Answer from AI
sobes.tech AI
В Go концепция восстановления после сбоев реализуется с помощью механизма panic и recover.
panicиспользуется для генерации ошибки, которая прерывает нормальное выполнение программы.recoverпозволяет перехватить панику и продолжить выполнение, если вызвать его внутри отложенной функции (defer).
Это полезно для обработки неожиданных ошибок и предотвращения аварийного завершения программы.
Пример:
package main
import "fmt"
func riskyFunction() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Восстановились после паники:", r)
}
}()
panic("что-то пошло не так")
fmt.Println("Этот код не выполнится")
}
func main() {
riskyFunction()
fmt.Println("Программа продолжает работу")
}
В этом примере panic вызывает ошибку, но благодаря recover программа не падает, а продолжает работу.