`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 wrongGörev
KolayBu 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")
}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
4Karşılaştırma ve Mantıksal Operatörler
Karşılaştırma Operatörleri - Bölüm 1Karşılaştırma Operatörleri - Bölüm 2Mantıksal VE OperatörüMantıksal VEYA OperatörüMantıksal DEĞİL OperatörüOperatör Önceliği TemelleriÖzet - Karşılaştırma Yapma7Kontrol Akışı: Döngüler
`for` Döngüsü Nedir?`for` Döngüsü - Temel`for` Döngüsü - Sadece Koşul`break` Anahtar Kelimesi`continue` Anahtar Kelimesiİç İçe DöngülerÖzet - İşlemleri Tekrarlama2Değişkenler ve Temel Veri Tipleri
Değişken nedir?`:=` ile Tür ÇıkarımıTam Sayılar (int)Ondalıklı SayılarBooleanlarStringlerSıfır DeğerlerSabitlerİsimlendirme KurallarıÖzet - Değişkenler ve Türler5Temel Giriş/Çıkış
Biçimlendirilmiş ÇıktıBiçim BelirteçleriVeri Tiplerini YazdırmaTemel Kullanıcı Girdisi AlmaÖzet - Giriş ve Çıkış8Fonksiyonlar
Fonksiyonları AnlamakFonksiyon TanımlamaFonksiyonları ÇağırmaFonksiyon ParametreleriTek Bir Değer DöndürmeBirden Fazla Değer Döndürmeİsimlendirilmiş Dönüş DeğerleriFonksiyon Kapsamı TemelleriÖzet - Yeniden Kullanılabilir Kod Oluşturma3Temel Operatörler
Aritmetik OperatörlerBölme OperatörüModulo OperatörüAtama OperatörüBileşik Atama OperatörleriArtırma ve AzaltmaÖzet - Hesaplamalar6Kontrol Akışı: Koşullu İfadeler
`if` İfadesi`else` Anahtar Kelimesi`else if` Anahtar Kelimesi`if` İçinde Değişken GölgelemeDeğişkenleri Başlatma`switch` İfadesiİfadeli `switch`İfadesiz `switch``fallthrough` Anahtar KelimesiÖzet - Karar Verme