Как обработать ошибки при вводе данных или выполнении математических операций в Go?

Пользователь

от aaliyah.greenfelder , в категории: Общие вопросы , 7 месяцев назад

Как обработать ошибки при вводе данных или выполнении математических операций в Go?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket

1 ответ

Пользователь

от fredy , 6 месяцев назад

@aaliyah.greenfelder 

В Go ошибки обрабатываются с использованием механизма встроенных ошибок. Для обработки ошибок при выполнении операций ввода-вывода или математических операций в Go используются функции, которые возвращают ошибку в качестве одного из возвращаемых значений.


Например, при чтении числа из потока ввода можно использовать функцию Scanf из пакета fmt, которая возвращает ошибку вторым параметром:

1
2
3
4
5
6
var num int
_, err := fmt.Scanf("%d", &num)
if err != nil {
    // обработка ошибки
    fmt.Println("Ошибка при вводе числа:", err)
}


При выполнении математических операций также следует проверять ошибки. Например, при делении чисел:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
a := 10
b := 0
result, err := divide(a, b)
if err != nil {
    // обработка ошибки
    fmt.Println("Ошибка при делении:", err)
} else {
    fmt.Println("Результат деления:", result)
}

func divide(a, b int) (int, error) {
    if b == 0 {
        return 0, errors.New("деление на ноль")
    }
    return a / b, nil
}


Таким образом, в Go ошибки обрабатываются явным образом с помощью проверки возвращаемого значения функции на наличие ошибки и дальнейшим выполнением соответствующих действий в случае ее возникновения.