Sobes.tech
Junior — Middle

Kuidas on Go keeles vigade käsitlemine rakendatud, sarnaselt teiste programmeerimiskeelte erandite mehhanismile?

sobes.tech AI

Vastus AI-lt

Go keeles vigade töötlemine toimub tagastatavate väärtuste kaudu, mitte erandite, nagu paljudes teistes keeltes. Funktsioonid ja meetodid tavaliselt tagastavad kaks väärtust: tulemuse ja vea (error). Kui viga ei ole nil, tähendab see, et viga on toimunud ja seda tuleb töödelda.

Näide vigade töötlemisest Go keeles:

package main

import (
    "errors"
    "fmt"
)

func divide(a, b float64) (float64, error) {
    if b == 0 {
        return 0, errors.New("nulliga jagamine")
    }
    return a / b, nil
}

func main() {
    result, err := divide(10, 0)
    if err != nil {
        fmt.Println("Viga:", err)
        return
    }
    fmt.Println("Tulemus:", result)
}

Seega, Go keeles ei ole try-catch struktuuri; selle asemel edastatakse ja kontrollitakse vigu otseselt, mis soodustab selgemat ja kontrollitumat vigade haldamist.