Skip to content

Instantly share code, notes, and snippets.

def a(val)
val += 1
lambda { return val }.call
val += 1
end
val = a(1)
p val # => 3
class NotAnError
end
raise NotAnError
class PolicyError < Exception
end
class UserPolicyError < PolicyError
end
begin
raise PolicyError, 'access not granted'
rescue PolicyError => policy_error
puts "#{policy_error.class}: #{policy_error.message}"
i = 0
begin
i += 1
puts "retry ##{i}"
raise RuntimeError
rescue RuntimeError => e
retry if i < 3
end
begin
"my string".odd?
rescue NoMethodError => e
puts "#{$!.class}: #{$!.message}"
$@.each { |loc| puts loc }
# SAME AS
# puts "#{e.class}: #{e.message}"
# e.backtrace.each { |loc| puts loc }
end
begin
3 / 0
rescue ZeroDivisionError => e
puts "#{e.class}: #{e.message}"
end
begin
"my string".odd?
rescue NoMethodError => e
puts "#{e.class}: #{e.message}"
begin
raise NoMethodError, 'an error occurred'
rescue NoMethodError => e
puts "#{e.class}: #{e.message}"
end
while gets
puts "line: #{$_}"
end
p $VERBOSE
warn 'printed'
def test
end
def test
end
p $VERBOSE
warn 'printed'
{ my_key: 'value', my_key: 'another_value' }