Study
Ruby

Exception Handling di Ruby (Begin/Rescue)

Penjelasan

Exception handling di Ruby memakai begin/rescue (bukan try/catch seperti kebanyakan bahasa lain): kode yang berpotensi error ditaruh di begin, ditangkap di rescue, dan blok ensure (opsional) selalu dijalankan baik terjadi error maupun tidak, biasa dipakai untuk membersihkan resource.

Contoh Konsep

def bagi(a, b)
  raise ArgumentError, "Tidak bisa membagi dengan nol." if b == 0

  a / b
end

begin
  puts bagi(10, 0)
rescue ArgumentError => e
  puts "Error: #{e.message}"
ensure
  puts "Selesai dicoba."
end

Praktikum

Buat method ambil_elemen(data, index) yang raise IndexError kalau index di luar jangkauan data (cek dengan data.length). Panggil di dalam begin/rescue dengan index yang sengaja tidak ada, lalu tampilkan pesan errornya.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

rescue tanpa menyebut jenis exception (rescue => e) akan menangkap StandardError dan semua turunannya — cukup luas untuk kebanyakan kasus, tapi sebaiknya tetap sebutkan jenis exception spesifik (mis. rescue ArgumentError => e) supaya kamu tidak diam-diam menutupi bug lain yang tidak terduga.