[Ruby] exception
Timur Batyrshin
batyrshin на ieml.ru
Чт Июн 21 12:29:39 MSD 2007
А можно как-нибудь вернуться из обработки эксепшна в ту же точку, где
он возник?
Допустим, есть у меня код:
begin
IO.readlines(file).each do |s|
storage.add(s) # => AddException
end
rescue AddException
# выдать ошибку о неправильном формате и продолжить обработку
rescue => err
puts err
end
Как сделать, чтобы на AddException происходил возврат в точку, где он
возник, чтобы можно было выполнить next ?
Насколько я понял, retry здесь не подойдет, т.к. тогда весь цикл заново
будет отрабатывать.
Пока разбил эту конструкцию на два захода
begin
lines=IO.readlines(file)
rescue
...
end
.. и
lines.each do |s|
begin
storage.add(s) if s
rescue
....
s=nil
retry
end
end
Но может как-то элегантней это сделать можно?..
Подробная информация о списке рассылки Ruby