--- Arie Kusuma Atmaja <[EMAIL PROTECTED]> wrote:

> ih kalo saya di JKT jadi pengen ngobrol2 (gathering id-ruby) soal exception
> handling ini 
> deh... (termasuk throw and catch)

throw catch ngga berhubungan dng exception handling, setahu saya. 
kalo saya memakai itu misalken utk membuat break with label.
misalken:

# nothing after "2 => a"
catch :outer do
  (1..3).to_a.each do |num|
    %w(a b c).each do |alpha|
      num == 2 and alpha == 'b' and throw :outer
      puts "#{num} => #{alpha}"
    end
  end
end

kalo di perl, last (semacam break di ruby) memang bisa takes label. 
kalo di php, musti ngitung depth-nya ... bwa ha ha ha..

menarik lagi adalah throw bisa dipakai dalam fungsi tanpa catch block, asalkan
fungsi itu dipanggil dalam catch block, misalken

def throw_something
  while gets
    throw :go_here if $_ =~ /quit/
    break if $_ =~ /bye/
    puts "> #$_"
  end
  puts "You said bye"
end

catch :go_here do
  throw_something
  throw_something
end

memang tidak nampak bagus, dikarenaken throw_something jadi tidak
self-contained. but still, interesting :-)

btw kalo yang background-nya java mungkin suka salah ketik 
raise dng throw kali ya..

rgds,
Edwin.




      
________________________________________________________ 
Kunjungi halaman depan Yahoo! Indonesia yang baru! 
http://id.yahoo.com/

Kirim email ke