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

واجهة الـ `error`

جزء من قسم Fundamentals في رحلة GO على Coddy — الدرس 103 من 109.

في لغة Go، تعد الواجهة error نوعًا مدمجًا يمثل حالات الخطأ. أي نوع يطبق الطريقة Error() يحقق هذه الواجهة.

إليك تعريف واجهة error:

type error interface {
    Error() string
}

أنشئ نوع error مخصص:

type MyError struct {
    Message string
}

func (e MyError) Error() string {
    return e.Message
}

func main() {
    err := MyError{Message: "something went wrong"}
    fmt.Println(err)
}

سيكون الناتج:

something went wrong
challenge icon

التحدي

سهل

في هذا التحدي، ستعمل مع interface الـ error في لغة Go. تحتاج إلى إنشاء error مخصص باستخدام function errors.New() ثم check ما إذا كان هناك error.

يحتوي الكود بالفعل على function التي returns error. مهمتك هي check ما إذا كان الـ error ليس nil و print message مناسبة.

جرّب بنفسك

package main

import (
	"errors"
	"fmt"
)

func main() {
	// هذه الدالة تُرجع خطأً
	err := generateError()
	
	// TODO: تحقق مما إذا كان err ليس nil
	// إذا كان err ليس nil، اطبع: "Error occurred: " متبوعًا برسالة الخطأ
	// HINT: استخدم عبارة if للتحقق مما إذا كان err != nil
	
	
	// يُنفَّذ هذا السطر بغض النظر عما إذا حدث خطأ أم لا
	fmt.Println("Program completed successfully")
}

// هذه الدالة تُنشئ خطأً
func generateError() error {
	return errors.New("something went wrong")
}
quiz iconاختبر نفسك

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

جميع دروس Fundamentals