Ruby uses exceptions. Instead of try, the block is called begin, and instead of catch there is rescue. The else is executed when no exception occurs.
There is also an ensure block which is always run last, exception or no.
# Count and report the number of lines and characters in a file.
print "File name: "
fn = gets.chomp
begin
f = open(fn)
nlines = 0
length = 0
f.each { |line| nlines += 1; length += line.length }
rescue
print "File read failed: " + $! + "\n"
else
print fn, ": ", nlines, " lines, ", length, " characters.\n"
end





