--- 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/