97: def self.rescue(ret=nil, &bloc_party)
98:
99: begin
100: ret = bloc_party.call
101: rescue NameError, ArgumentError, RuntimeError, Errno::ECONNREFUSED => ex
102: Rudy::Huxtable.le "#{ex.class}: #{ex.message}".color(:red)
103: Rudy::Huxtable.le ex.backtrace if Rudy.debug?
104:
105: unless Rudy::Huxtable.global.parallel
106: choice = Annoy.get_user_input('(S)kip (A)bort: ', nil, 3600) || ''
107: if choice.match(/\AS/i)
108:
109: else
110: exit 12
111: end
112: end
113: rescue Interrupt
114: Rudy::Huxtable.li "Aborting..."
115: exit 12
116: end
117: ret
118: end