Hata işleme, yazılım geliştirme döngüsünde sık yapılan işlemlerden biridir. İyi programlamanın çok önemli bir yönüdür. Go, yerleşik hata işleme mekanizmasıyla basit ve kullanımı kolay bir yaklaşım benimsiyor. Sezgisel ve okunması kolay kod işlevlerine odaklanmanızı sağlayan işlevlerden ve yöntemlerden hata döndürmeye dayalıdır.
Hataları Go'da açık bir şekilde ele alırsınız, bu da tutarlı bir şekilde yeniden deneme mantığını uygulama becerisiyle geri bildirim için sağlam bir çerçeve sağlar. bu hatalar paket, hata işleme için ek işlevsellik sağlar.
Hata Paketi
hata paketi Go'nun standart kitaplığındaki paketlerden biridir. Paket, Go kodunda tutarlı bir şekilde hatalar oluşturmak ve bunları işlemek için basit hata işleme ilkeleri ve işlevleri sağlar.
Paket şunları sağlar: Yeni gibi herhangi bir yerleşik hata türüyle aynı şekilde kullanabileceğiniz özel hata mesajlarıyla hatalar oluşturma işlevi.
sıfır Ve Hata yöntemi hata arayüz.bu hatalar package ayrıca, hatalar üzerine tip iddiaları için bir yöntem olan sarmalama ve açma hataları için işlevsellik sağlar.
içe aktarabilirsiniz hatalar import anahtar kelimesiyle paketleyin. Paketin adını içe aktarma listenizde belirtmeniz yeterlidir.
içe aktarmak"hatalar"
Go'da Hataları Yakalama ve İşleme
Go'da temel hata işleme bilgisi, aşağıdakileri anlamanın temelini oluşturur: hatalar paket. İşlevler ve yöntemler, bir kaynağın eşlik ettiği hataları döndürür.
Yerleşik olan bir dosya açma işleminde hata işlemeye bir örnek: işletim sistemi paket.
paket ana
içe aktarmak (
"fmt"
"işletim sistemi"
)işlevana() {
dosya, hata := işletim sistemi. Açık("dosyaadı.txt")eğer hata!= sıfır {
fmt. Println (hata)
}
// ...
}
bu Açık yöntemi işletim sistemi paket ne zaman yararlıdır Go'da metin dosyalarıyla çalışma. Bir dosyayı açar, bir açık dosya örneği ve bir hata.
hata değeri olabilir sıfır yazın, hata olmadığını gösterir. Ancak sıfır olmayan bir durum olup olmadığını kontrol edebilir ve varsa bir hatayı işleyebilirsiniz. Yukarıdaki durumda, if bloğu hatayı yazdırır.
Şuraya erişebilirsiniz: Hata hata hakkında daha fazla bilgi (genellikle bir açıklama) çıkarmak için bir hata yöntemi.
eğer hata!= sıfır {
fmt. Yazdır (hata. Hata())
}
Örneğin, dosya mevcut değilse, şuna benzer bir hata mesajı görürsünüz:
Go'da Hata Oluşturma
ile hatalar oluşturabilirsiniz. Yeni yöntemi hatalar paket. Bu yöntem bir dizi mesajı alır ve karşılaşılan hataları döndürür.
içe aktarmak"hatalar"
işlevana() {
hata := hatalar. Yeni("bir şeyler yanlış gitti")
eğer hata!= sıfır {
// hata işleme kodu buraya gelir
}
}
bu ana işlevi yeni bir hata oluşturur ve hata oluşturmadaki olası hataları bir eğer ifade.
Go'da özel hatalar da tanımlayabilirsiniz. Geleneksel yöntem, yapıyı hatanın işlevselliğine dayalı olarak uygulamak için bir yapı ve bir hata işlevi kullanır.
paket ana
içe aktarmak"fmt"
tip özel hata yapı {
bilgi sicim
}işlevana() {
// yapının somutlaştırılması örneği
hata := özelHata{
bilgi: "Bir şeyler yanlış gitti!",
}
// yapının örneğini çıkar
fmt. Println (hata)
}
bu özel hata struct, hatanın planıdır ve bilgi string alanı hata mesajını tutacaktır.
Hata işlevleriniz şunları uygulayabilir: özel hata struct ve bir hata dizesi döndürür.
işlev(ce customError)Hata()sicim {
geri dönmek fmt. Sprintf("Özel bir hata oluştu: %v", ce.info)
}
bu Hata yöntemi özel hata yapı kullanarak bir dize döndürür fmt paketinin Sprintf biçimlendirme yöntemi.
Go'da Sarma ve Paketten Çıkarma Hataları
Hataları sarmalayarak daha fazla bağlamsal bilgi ekleyebilirsiniz. Hata ayıklamada kesinlik için net hata mesajları oluşturmak üzere öncelikle sarmalanmış hataları kullanacaksınız.
kullanabilirsiniz Hata yöntemi fmt hataları sarmak için hata mesajlarını biçimlendirme işlevi sağlayan paket. bu Hata yöntem bir dize ve dize biçimlendirme fiilini ve hatayı alır ve sarılmış hatayı döndürür.
içe aktarmak (
"fmt"
"işletim sistemi"
)işlevana() {
_, hata := işletim sistemi. Açık("dosyaadı.txt")
eğer hata!= sıfır {
sarılmışErr := fmt. Hataf("Dosyayı açarken hata: %v", hata)
fmt. Println (wrappedErr)
}
}
bu ana işlevi ile bir dosya açar işletim sistemi paketin Açık yöntemini kullanır ve hatayı Errorf yöntemiyle sarar. fmt paket. Ardından, sarılmış hatayı konsola verir.
ile programlarınızdaki sarılmış hataları açabilirsiniz. aç yöntemi hatalar paket. bu aç yöntem sarmalanmış hatayı alır ve sarmalanmamış hatayı döndürür.
içe aktarmak (
"fmt"
"işletim sistemi"
"hatalar"
)işlevana() {
_, hata := işletim sistemi. Açık("dosyaadı.txt")
eğer hata!= sıfır {
sarılmışErr := fmt. Hataf("Dosyayı açarken hata: %v", hata)
unwrappedErr := hatalar. Paketi aç (sarmalanmışErr)
fmt. Println (açılmamışErr)
}
}
bu ana işlevi, bir dosya açma işleminden kaynaklanan bir hatayı sarar ve açılmamışErr değişken, paketlenmemiş hatayı tutar.
Bu Üçüncü Taraf Günlüğe Kaydetme Paketleriyle Hata Raporlarınızı Günlüğe Kaydedin
Uygulama geliştirme süreciniz sırasında daha sonraki incelemeler, hata ayıklama ve diğer işlemler için bazı hataları günlüğe kaydetmeniz gerekecek. kullanabilirsiniz zap hızlı, yapılandırılmış günlük kaydı için Uber, Logrus, Zerolog ve Log15 paketleri ile paket.