Передача нескольких классов ошибок в предложение ruby ​​rescue в режиме DRY

lsof -i :port 

скажет Вам, какие программы слушают на определенном порте.

93
задан Andrew Marshall 28 October 2012 в 05:33
поделиться

1 ответ

В то время как ответ данный @sawa является технически правильным, я думаю, что он неправильно использует механизм обработки исключений Ruby.

Как комментарий Peter Ehrlich предлагает (указывая на старое сообщение в блоге Mike Ferrier ), Ruby уже оборудован механизмом обработчика исключений DRY:

puts 'starting up'
begin
  case rand(3)
  when 0
    ([] + '')
  when 1
    (foo)
  when 2
    (3 / 0)
  end
rescue TypeError, NameError => e
  puts "oops: #{e.message}"
rescue Exception => e
  puts "ouch, #{e}"
end
puts 'done'

При помощи этой техники, мы можем получить доступ к объекту исключения, который обычно имеет некоторую ценную информацию в ней.

0
ответ дан 24 November 2019 в 06:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: