Sobes.tech
Junior — Middle

Какви видове изключения или грешки могат да бъдат обработени в езика Go?

sobes.tech AI

Отговор от AI

В езика Go няма традиционна система за изключения, както в някои други езици. Вместо това грешките се обработват с помощта на стойности за връщане от типа error.

Основните начини за обработка на грешки в Go:

  • Връщане на грешка от функция: функцията връща стойност и грешка, които трябва да бъдат проверени.
  • Panic (panic) и възстановяване (recover): използват се за обработка на критични грешки, които обикновено водят до спиране на програмата, но могат да бъдат уловени.

Пример за обработка на грешка:

func readFile(filename string) ([]byte, error) {
    data, err := os.ReadFile(filename)
    if err != nil {
        return nil, err
    }
    return data, nil
}

func main() {
    data, err := readFile("file.txt")
    if err != nil {
        fmt.Println("Грешка при четене на файла:", err)
        return
    }
    fmt.Println(string(data))
}

По този начин, в Go се обработват грешките, връщани от функциите, а не изключенията в класическия смисъл.