Menu
CoddyTech

Fungsi error()

Termasuk bagian Logika dan Alur dalam perjalanan Lua di Coddy. Pelajaran 32 dari 54.

Terkadang kodemu perlu langsung berhenti saat terjadi kesalahan. Lua menyediakan fungsi error() untuk menangani situasi ini dengan memunculkan error dan menghentikan eksekusi skrip.

Fungsi error() menerima pesan sebagai argumennya dan menghentikan program, lalu menampilkan pesan tersebut untuk menunjukkan apa yang salah. Berikut sintaks dasarnya:

error("Something went wrong!")

Ini sangat berguna saat memvalidasi input fungsi. Misalnya, jika sebuah fungsi mengharapkan angka positif tetapi menerima angka negatif, kamu dapat menggunakan error() untuk mencegah eksekusi lebih lanjut:

function calculateSquareRoot(num)
    if num < 0 then
        error("Cannot calculate square root of a negative number")
    end
    return math.sqrt(num)
end

Saat error() dipanggil, program langsung berhenti pada titik tersebut dan menampilkan pesan error khusus buatanmu. Ini membantumu menemukan masalah lebih awal dan menjelaskan dengan jelas apa yang salah, sehingga kodemu lebih andal dan lebih mudah di-debug.

error() digunakan untuk kesalahan nyata, seperti saat fungsi dipanggil dengan jenis nilai yang salah. Untuk kegagalan yang seharusnya diantisipasi oleh pemanggil, seperti item yang hilang atau input pengguna yang tidak valid, kode Lua biasanya tidak menimbulkan error. Sebaliknya, fungsi mengembalikan nil dan sebuah pesan, lalu pemanggil memeriksa hasilnya:

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)  -- Tidak ada item bernama sword
end

Fungsi bawaan Lua bekerja dengan cara yang sama: tonumber("abc") mengembalikan nil, dan io.open() mengembalikan nil dan sebuah pesan saat tidak dapat membuka file.

Coba sendiri

Pelajaran ini tidak memiliki tantangan kode.

quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler Lua online