2009-10-09 7 views

答えて

189

方法 "DEF" "始め" のステートメントとして機能することができます

def foo 
    ... 
rescue 
    ... 
end 
+0

おかげで私だけその仕組みを知りたがっています。それは私が探していたものとほとんど同じです。ありがとうございました。 – Sid

+2

また、クラス定義、モジュール定義、 'do' /' end'ブロックリテラルは暗黙の例外ブロックを形成します。 –

+0

あなたは救助を終わらせることもできますか? –

41

ます。また、インラインを救うことができます。

1 + "str" rescue "EXCEPTION!" 

がプリントアウトされます "例外を!"

+1

どのようにレスキューバックトレースを救済して表示しますか? –

+0

実際の例外を返す方法は? – user1735921

21

「文字列がFixnumかに強制することはできない」ので、私はActiveRecordのバリデーションとDEF /レスキュー組み合わせをたくさん使用しています:

def create 
    @person = Person.new(params[:person]) 
    @person.save! 
    redirect_to @person 
rescue ActiveRecord::RecordInvalid 
    render :action => :new 
end 

私は、これは非常に希薄なコードだと思います!

14

例:begin文と

begin 
    # something which might raise an exception 
rescue SomeExceptionClass => some_variable 
    # code that deals with some exception 
ensure 
    # ensure that this code always runs 
end 
ここ

def

def 
    # something which might raise an exception 
rescue SomeExceptionClass => some_variable 
    # code that deals with some exception 
ensure 
    # ensure that this code always runs 
end 
関連する問題