Error Handling: pcall & error
Penjelasan
Lua menangani error dengan `pcall()` (protected call) — menjalankan sebuah fungsi dengan aman, menangkap error kalau terjadi alih-alih membuat seluruh script berhenti. `pcall()` mengembalikan `true, hasil` kalau sukses, atau `false, pesan_error` kalau gagal. `error()` dipakai untuk melempar error kustom.
Contoh Konsep
function bagi(a, b)
if b == 0 then
error("Tidak bisa membagi dengan nol.")
end
return a / b
end
local sukses, hasil = pcall(bagi, 10, 0)
if sukses then
print("Hasil:", hasil)
else
print("Error:", hasil) -- hasil berisi pesan error kalau gagal
end
Praktikum
Buat fungsi ambil_elemen(tabel, index) yang memanggil error() kalau index di luar jangkauan #tabel. Panggil lewat pcall() dengan index yang sengaja tidak ada, lalu tampilkan hasilnya.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Selalu bungkus pemanggilan fungsi yang BERPOTENSI error (mis. akses file, parsing data dari luar) dengan `pcall()` — tanpa itu, satu error tak tertangani akan menghentikan seluruh script Lua.