Menu
Coddy logo textTech

Создание простых ошибок

Часть раздела Основы путешествия по GO на Coddy — урок 106 из 109.

В Go вы можете создавать пользовательские ошибки, используя функцию errors.New() из стандартной библиотеки.

Импортируйте пакет errors:

import (
    "errors"
    "fmt"
)

Создайте простую ошибку с сообщением:

func divide(a, b int) (int, error) {
    if b == 0 {
        return 0, errors.New("cannot divide by zero")
    }
    return a / b, nil
}

func main() {
    result, err := divide(10, 0)
    if err != nil {
        fmt.Println("Error:", err)
    } else {
        fmt.Println("Result:", result)
    }
}

Вывод будет:

Error: cannot divide by zero
challenge icon

Задание

Новичок

В этом испытании вы попрактикуетесь в создании простой ошибки в Go с помощью функции errors.New().

У вас есть функция, которая проверяет, является ли имя пользователя допустимым. Имя пользователя считается допустимым, если оно содержит как минимум 5 символов. Ваша задача — завершить функцию, возвращая соответствующую ошибку, когда имя пользователя слишком короткое.

Шпаргалка

Создавайте пользовательские ошибки с помощью errors.New() из стандартной библиотеки:

import (
    "errors"
    "fmt"
)

Возврат ошибки из функции:

func divide(a, b int) (int, error) {
    if b == 0 {
        return 0, errors.New("cannot divide by zero")
    }
    return a / b, nil
}

Обработка ошибки:

result, err := divide(10, 0)
if err != nil {
    fmt.Println("Error:", err)
} else {
    fmt.Println("Result:", result)
}

Попробуйте сами

package main

import (
	"errors"
	"fmt"
)

func main() {
	// Тест с допустимым именем пользователя
	result, err := validateUsername("gopher123")
	if err != nil {
		fmt.Println("Error:", err)
	} else {
		fmt.Println(result)
	}

	// Тест с недопустимым именем пользователя
	result, err = validateUsername("go")
	if err != nil {
		fmt.Println("Error:", err)
	} else {
		fmt.Println(result)
	}
}

func validateUsername(username string) (string, error) {
	if len(username) < 5 {
		// TODO: Вернуть ошибку с сообщением "username must be at least 5 characters long"
		// Подсказка: используйте errors.New() для создания новой ошибки
		return "", nil // Замените эту строку
	}
	return "Username is valid", nil
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы