Rails 内でのレスキュー使用 - begin なしのアクション

概要

begin-キーワードなしでこれはどのように機能しますか?

def show
  @post = BlogPost.find(params[:id])
rescue ActiveRecord::RecordNotFound
  redirect_to root_path
end

なぜそうではないのでしょうか?

def show
  begin
    @post = BlogPost.find(params[:id])
  rescue ActiveRecord::RecordNotFound
    redirect_to root_path
  end
end

どちらのバリエーションも機能します。試してみました。しかし、最初のものを理解するのに苦労しています。

解決策

begin/end はレスキューが使用できる場所の 1 つにすぎません。 begin を def または do に置き換えるだけで、概念的には同じです。

begin
  err
rescue
  "error"
end

def m
  err
rescue
  "error"
end

[1].map do |i|
  err
rescue
  "error"
end

クラスとモジュールも機能しますが、何に使用するかわかりません。

class A
  err
rescue
  "error"
end

module B
  err
rescue
  "error"
end

https://translate.google.com/translate?hl=ja&sl=en&tl=ja&u=https://docs.ruby-lang.org/en/3.3/syntax/exceptions_rdoc.html