Re: [Ruby] Обработка исключений метода eval

SoNaR sonar на scli.ru
Чт Июл 1 16:01:54 MSD 2004


Уважаемый SoNaR,

Thursday, July 1, 2004, 3:54:49 PM, Вы писали следующее:

S>   Задача состоит в том, чтобы проверить корректность некоторой строки
S>   на соответствие синтаксису Ruby, а заодно и вычислить значение.

S> begin
S>   eval('2+2+')
S> rescue
S>   p "error"
S> end

S>    Вылезает неперехватываемое исключение... почему и как с этим
S>    бороться?

S>    ЗЫ. С другой стороны, правильнее было бы сделать регулярное
S>    выражение, которое бы сузило область применения eval и проверяло бы
S>    соответствие выражения именно этому подмножеству языка.

      Решение было найдено... простое и гениальное. :-) Надо было явно
      обрабатывать ошибку SyntaxError.

begin
   eval('2+2+')
rescue SyntaxError
   p "error"
end

      PS. Кстати, заходите на http://rubynews.ru

---
г.Москва, Научный центр правовой информации при Минюсте РФ

Шипиев Роман Николаевич
Начальник отдела проектирования, программирования 
и сопровождения информационных систем.

Тел: (095) 459-05-12
E-Mail: sonar на scli.ru
UIN: 289794359



Подробная информация о списке рассылки Ruby