Sobes.tech
Junior — Middle

Программада panic түрүндөгү катаны кармоо жана иштетүү үчүн кандай ыкмалар бар?

sobes.tech AI

AIден жооп

Go тилинде, panic түрүндөгү каталарды кармоо жана иштетүү үчүн recover механизми defer менен бирге колдонулат. recover функциясы паниканы кармап, программаны күтүүсүздөн токтото турганды алдын алууга мүмкүндүк берет.

Мисал:

func safeFunction() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Тамырланган паника:", r)
        }
    }()

    // panic жаратышы мүмкүн код
    panic("эч нерсе туура эмес болду")
}

func main() {
    safeFunction()
    fmt.Println("Программа ишин улантат")
}

Бул мисалда, defer анонимдүү функциянын иштешин кечиктирет, ал recover чакырат. Эгер safeFunction ичинде паника болсо, ал кармалат жана иштетилет, бул программа иштөөдө улантууга мүмкүндүк берет.