2011-01-25 35 views

Trả lời

8

Không phải như vậy. Nhưng bạn có thể giải cứu tất cả ngoại lệ và reraise ngoại lệ nếu nó là một ngoại lệ.

+0

Đó là âm thanh tốt. Cảm ơn! – ma11hew28

+0

Bạn không được phép giải cứu tất cả ngoại lệ: 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

Không biết thêm về vấn đề của bạn, tôi đề nghị câu trả lời của Ken Bloom.

Tuy nhiên, tôi muốn biết thêm về lý do bạn thực hiện.

Bạn đang lo lắng về một ngoại lệ thực sự nghiêm trọng, và không muốn giải cứu điều đó, nhưng cho phép ngoại lệ ít nghiêm trọng hơn để được giải cứu?

Trong trường hợp đó, tôi muốn làm cho ngoại lệ tùy chỉnh của tôi kế thừa từ Exception hơn StandardError và sau đó có

begin 
    do_risky_stuff 
rescue # Not rescue Exception 
    handle_less_serious_stuff 
end 
Các vấn đề liên quan