Uzun süredir devam eden eski bir yakut programından geçtim.
begin
#dosomething
rescue Exception => e
#halt the exception's progress
end
boyunca.
Bunların her birinin üstesinden gelebilecek olası istisnaları takip etmeden (en azından hemen değil), yine de zaman zaman kapatabilmek istiyorum CtrlC.
Ve bunu yalnızca koda eklenecek bir şekilde yapmak istiyorum (bu nedenle mevcut davranışı etkilemem veya çalışmanın ortasında başka türlü yakalanan bir istisnayı kaçırmam.)
[ Ruby'nin istisna işleme sistemine CtrlCeşdeğer görünen SIGINT veya SystemExit'tir SignalException.new("INT")
. class SignalException < Exception
işte bu yüzden bu sorun ortaya çıkıyor.]
Yazmak istediğim kod şöyle olurdu:
begin
#dosomething
rescue SignalException => e
raise e
rescue Exception => e
#halt the exception's progress
end
DÜZENLEME: Bu kod, doğru tuzağa düşürmek istediğiniz istisna sınıfını aldığınız sürece çalışır. Bu, aşağıdaki gibi SystemExit, Interrupt veya IRB :: Abort.