2011-01-25 18 views

Odpowiedz

8

Nie jako taki nie. Ale możesz uratować wszystkie wyjątki i zmienić wyjątek, jeśli jest to wyjątek MyException.

+0

to brzmi dobrze. Dzięki! – ma11hew28

+0

Nie należy ratować wszystkich wyjątków: https://stackoverflow.com/questions/10048173/why-is-it-a-bad-style-to-rescue-exception-e-in-ruby –

33
begin 

rescue MyException 
    raise #to reraise the same exception without changing it 
rescue Exception => e 
    #do something with e 
end 
2

Nie wiedząc więcej o twoim problemie, proponuję odpowiedź Kena Blooma.

Chciałbym jednak wiedzieć więcej o tym, dlaczego to robisz.

Martwisz się bardzo poważnym wyjątkiem i nie chcesz go uratować, ale możesz pozwolić na mniej surowe wyjątki, które możesz uratować?

W takim przypadku, że zrobię mój zwyczaj wyjątek dziedziczą Exception zamiast StandardError i wtedy

begin 
    do_risky_stuff 
rescue # Not rescue Exception 
    handle_less_serious_stuff 
end 
Powiązane problemy