Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

إنشاء أخطاء بسيطة

جزء من قسم Fundamentals في رحلة 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اختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Fundamentals