error() Fonksiyonu
Coddy'nin Lua Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 32 / 54.
Bazen kodunuz, bir şeyler ters gittiğinde hemen durmalıdır. Lua, hata oluşturarak ve betiğin yürütülmesini durdurarak bu durumları ele almak için error() işlevini sağlar.
error() işlevi, bağımsız değişken olarak bir ileti alır ve neyin yanlış gittiğini belirtmek için bu iletiyi görüntüleyerek programı durdurur. Temel söz dizimi şöyledir:
error("Something went wrong!")Bu, özellikle fonksiyon girdilerini doğrularken kullanışlıdır. Örneğin, bir fonksiyon pozitif bir sayı bekliyor ancak negatif bir sayı alıyorsa, daha fazla çalışmasını önlemek için error() kullanabilirsiniz:
function calculateSquareRoot(num)
if num < 0 then
error("Cannot calculate square root of a negative number")
end
return math.sqrt(num)
enderror() çağrıldığında program o noktada hemen durur ve özel hata mesajınızı görüntüler. Bu, sorunları erken fark etmenize ve neyin yanlış gittiğini açıkça anlatmanıza yardımcı olur; böylece kodunuz daha güvenilir olur ve hata ayıklaması kolaylaşır.
error(), bir fonksiyonun yanlış türde bir değerle çağrılması gibi gerçek hatalar içindir. Çağıranın eksik bir öğe veya hatalı kullanıcı girdisi gibi beklemesi gereken başarısızlıklarda Lua kodu genellikle hata oluşturmaz. Bunun yerine fonksiyon nil ve bir mesaj döndürür; çağıran da sonucu kontrol eder:
function findItem(inventory, name)
if inventory[name] == nil then
return nil, "No item called " .. name
end
return inventory[name]
end
local count, err = findItem({potion = 3}, "sword")
if count then
print("You have " .. count)
else
print(err) -- sword adlı eşya yok
endLua'nın kendi fonksiyonları da aynı şekilde çalışır: tonumber("abc"), nil döndürür; io.open() ise bir dosyayı açamadığında nil ve bir mesaj döndürür.
Kendin dene
Bu ders bir kod alıştırması içermiyor.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık ve Akış bölümündeki tüm dersler
1İleri Düzey Tablo Yineleme
pairs() ile Yinelemeipairs() ile Yinelemepairs() vs. ipairs()Özet - Karakter Sayfası2Daha Fazla Tablo Kütüphanesi Fonksiyonu
table.concat()Tablo Oluşturma ve unpack()table.sort()Fonksiyonlar ile Özel SıralamaÖzet - Yüksek Skor TablosuKendi başına pratik yap: Online Lua derleyicisi