Проверка ошибок
Часть раздела Основы путешествия по GO на Coddy — урок 105 из 109.
В Go мы проверяем наличие ошибок с помощью операторов if. Этот паттерн чрезвычайно распространен.
Проверьте, не возникла ли ошибка, используя if err != nil:
func main() {
result, err := divide(10, 0)
if err != nil {
fmt.Println("Error occurred:", err)
return // Остановить выполнение, если возникла ошибка
}
// Продолжить только при отсутствии ошибки
fmt.Println("Result:", result)
}Вывод будет:
Error occurred: cannot divide by zeroЗадание
НовичокВ Go функции часто возвращают значение ошибки, которое необходимо проверить перед использованием результата. В этом испытании вы попрактикуетесь в проверке ошибок с помощью оператора if.
У нас есть функция openFile, которая имитирует открытие файла и возвращает ошибку, если файл не существует. Ваша задача — проверить наличие ошибки и вывести соответствующее сообщение.
Шпаргалка
Проверьте наличие ошибок с помощью if err != nil:
result, err := someFunction()
if err != nil {
fmt.Println("Error occurred:", err)
return // Остановить выполнение, если возникла ошибка
}
// Продолжить только в случае отсутствия ошибки
fmt.Println("Result:", result)Попробуйте сами
package main
import (
"fmt"
)
// Эта функция имитирует открытие файла
// Она возвращает ошибку, если файл не существует
func openFile(filename string) error {
if filename == "data.txt" {
return nil // nil означает отсутствие ошибки
} else {
return fmt.Errorf("file %s not found", filename)
}
}
func main() {
filename := "config.txt"
// Вызов функции openFile
err := openFile(filename)
// TODO: Проверьте, не является ли err отличным от nil (что означает наличие ошибки)
// Если возникла ошибка, выведите: "Error: " с последующим сообщением об ошибке
// Если ошибки не было, выведите: "File opened successfully"
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы сравнения и логические операторы
Операторы сравнения — Часть 1Операторы сравнения — Часть 2Логический оператор ANDЛогический оператор ORЛогический оператор NOTОсновы приоритета операторовИтоги: выполнение сравнений7Управляющие конструкции: Циклы
Что такое цикл `for`Цикл `for` — основыЦикл `for` — только условиеКлючевое слово `break`Ключевое слово `continue`Вложенные циклыИтоги — повторение действий2Переменные и базовые типы данных
Что такое переменнаяВывод типов с помощью `:=`Целые числа (int)Числа с плавающей точкойЛогический тип (Booleans)СтрокиНулевые значения (Zero Values)КонстантыПравила именованияИтоги: переменные и типы5Основы ввода-вывода
Форматированный выводСпецификаторы форматаВывод типовБазовый ввод данных пользователемИтоги: ввод и вывод8Функции
Понимание функцийОбъявление функцииВызов функцийПараметры функцииВозврат одного значенияВозврат нескольких значенийИменованные возвращаемые значенияОсновы области видимости функцийИтоги — создание переиспользуемого кода3Базовые операторы
Арифметические операторыОператор деленияОператор остатка от деленияОператор присваиванияКомбинированные операторы присваиванияИнкремент и декрементПовторение — Вычисления6Управление потоком: Условные конструкции
Оператор `if`Ключевое слово `else`Ключевое слово `else if`Затенение переменных в `if`Инициализация переменныхОператор `switch`Switch с выражениямиSwitch без выраженийКлючевое слово `fallthrough`Итоги — Принятие решений