2016-10-06 8 views
1

Googleで徹底的に検索していますが、答えを見つけることができないようです。=> Rubyの演算子

def test_raising_a_particular_error 
    result = nil 
    begin 
     # 'raise' and 'fail' are synonyms 
     raise MySpecialError, "My Message" 
    rescue MySpecialError => ex 
     result = :exception_handled 
    end 

    assert_equal :exception_handled, result 
    assert_equal "My Message", ex.message 
end 
+1

ここでは、「MySpecialError」のようなものをキャッチして、それを 'ex'という名前の変数*に格納することを意味します。 – ndn

+0

@ndn、説明をありがとうございました –

答えて

3

Rubyで何=>オペレータがありません:私は=>オペレータは、以下に示すRubyコードに何を意味するのか疑問に思って。 Rubyで=>の2つの用途は、しかし、があります。例外フィルタ式の後rescue句で

  • キーオブジェクトと値オブジェクト間のリテラルHash

    1. 、例外はあるべき変数の命名します

    に結合するので、この場合には、それは#2だし、「MySpecialErrorのインスタンスである任意の例外を救出し、exという名前のローカル変数にバインド」を意味します。

  • +0

    あなたの詳細な回答をありがとうございました。 :)ローカル変数 'ex'に' MySpecialError'をバインドして、 'ex'を後で使用できるようにするのは本当ですか? –