Capturando Ctrl-c em ruby

Foi-me aprovado um programa ruby legado de longa duração, que tem inúmeras ocorrências de

begin
  #dosomething
rescue Exception => e
  #halt the exception's progress
end

ao longo dele.

Sem rastrear todas as exceções possíveis que elas possam estar lidando (pelo menos não imediatamente), eu ainda gostaria de poder desligá-las às vezes comCtrlC.

E eu gostaria de fazê-lo de uma maneira que apenas adicione ao código (para não afetar o comportamento existente ou perder uma exceção detectada no meio de uma execução).

[CtrlC é SIGINT, ou SystemExit, que parece ser equivalente aSignalException.new("INT") no sistema de tratamento de exceções do Ruby.class SignalException < Exception, e é por isso que esse problema surge.]

O código que eu gostaria de escrever seria:

begin
  #dosomething
rescue SignalException => e
  raise e
rescue Exception => e
  #halt the exception's progress
end

EDIT: Este código funciona, desde que você obtenha a classe da exceção que deseja capturar correta. Isso é SystemExit, Interrupt ou IRB :: Abort como abaixo.

questionAnswers(5)

yourAnswerToTheQuestion