Menu
Coddy logo textTech

`error` Arayüzü

Coddy'nin GO Journey'sinin Temeller bölümünün bir parçası — ders 103 / 109.

Go'da, error arayüzü hata durumlarını temsil eden yerleşik bir türdür. Error() metodunu uygulayan herhangi bir tür bu arayüzü karşılar.

İşte hata arayüzü tanımı:

type error interface {
    Error() string
}

Özel bir hata türü oluşturun:

type MyError struct {
    Message string
}

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

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

Çıktı şu şekilde olacaktır:

something went wrong
challenge icon

Görev

Kolay

Bu meydan okumada, Go'nun error arayüzü ile çalışacaksınız. errors.New() fonksiyonunu kullanarak özel bir hata oluşturmanız ve ardından bir hatanın var olup olmadığını kontrol etmeniz gerekiyor.

Kodda zaten bir hata döndüren bir fonksiyon bulunuyor. Göreviniz, hatanın nil olup olmadığını kontrol etmek ve uygun bir mesaj yazdırmaktır.

Kopya kağıdı

error arayüzü, hata durumlarını temsil eden yerleşik bir türdür. Error() metodunu uygulayan herhangi bir tür bu arayüzü karşılar:

type error interface {
    Error() string
}

Özel bir hata türü oluşturun:

type MyError struct {
    Message string
}

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

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

Basit hatalar oluşturmak için errors.New() kullanın ve bir hatanın nil olmadığını kontrol edin.

Kendin dene

package main

import (
	"errors"
	"fmt"
)

func main() {
	// Bu fonksiyon bir hata döndürür
	err := generateError()
	
	// YAPILACAK: err'in nil olup olmadığını kontrol edin
	// Eğer err nil değilse, "Error occurred: " ve ardından hata mesajını yazdırın
	// İPUCU: err != nil olup olmadığını kontrol etmek için bir if ifadesi kullanın
	
	
	// Bu satır sadece hiçbir hata oluşmadıysa çalışacaktır
	fmt.Println("Program completed successfully")
}

// Bu fonksiyon bir hata oluşturur
func generateError() error {
	return errors.New("something went wrong")
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler