Study
Lua

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.

Editor Latihan

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.