begin
代码1
rescue
代码2
end
如果执行 代码1 发生异常 则转至 代码2
若正常,则执行完跳出
有2种, 经过else或者不经过else
linlin@linlin-i5:/workspace/pns-operation-backend$ bundle exec rails c
Loading development environment (Rails 6.1.5.1)
irb: warn: can't alias context from irb_context.
irb(main):001:1* begin
irb(main):002:1* 1/0
irb(main):003:1* rescue => e
irb(main):004:1* puts "in rescue error is:#{e}"
irb(main):005:1* else
irb(main):006:1* puts "in else"
irb(main):007:0> end
in rescue error is:divided by 0
=> nil
irb(main):008:0>
irb(main):008:1* begin
irb(main):009:1* 1/1
irb(main):010:1* rescue => e
irb(main):011:1* puts "in rescue error is:#{e}"
irb(main):012:1* else
irb(main):013:1* puts "in else"
irb(main):014:0> end
in else
=> nil
irb(main):015:0>