Menu
CoddyTech

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)
end

error() ç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
end

Lua'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.

quiz iconKendini test et

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

Kendi başına pratik yap: Online Lua derleyicisi