Sobes.tech
Junior — Middle

Quais métodos podem ser usados para capturar e tratar um erro do tipo panic no programa?

sobes.tech IA

Resposta da IA

No Go, para capturar e tratar erros do tipo panic, utiliza-se o mecanismo recover juntamente com defer. A função recover permite apanhar um pânico e evitar que o programa termine de forma abrupta.

Exemplo:

func safeFunction() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Pânico capturado:", r)
        }
    }()

    // Código que pode causar panic
    panic("algo correu mal")
}

func main() {
    safeFunction()
    fmt.Println("O programa continua a executar")
}

Neste exemplo, defer adia a execução de uma função anónima que chama recover. Se ocorrer um pânico em safeFunction, ele será capturado e tratado, permitindo que o programa continue a funcionar.