Я бегу в интерактивном режиме:Когда нужно разобрать() выбросить ошибку?
Julia Version 0.4.0-dev+1903
Commit 6b0fcce (2014-11-30 18:08 UTC)
Отсюда в документации для Base.parse:
http://julia.readthedocs.org/en/latest/stdlib/base/?highlight=parse#Base.parse
Я прочитал это:
Если рейз истинно (по умолчанию), ошибки синтаксиса вызовут ошибку; в противном случае parse вернет выражение, которое приведет к ошибке после оценки.
Он работает как описано, когда я делаю это:
julia> parse("end")
ERROR: ParseError("unexpected end")
Но не тогда, когда я делаю это:
julia> parse("println(")
:($(Expr(:incomplete, "incomplete: premature end of input")))
julia> eval(ans)
ERROR: syntax: incomplete: premature end of input
Это ожидаемое поведение? Должно ли parse()
выбросить ошибку в этом втором случае, или он должен дождаться eval()
?
Моя первоначальная догадка заключается в том, что это ошибка или, по крайней мере, документация должна быть улучшена. Не могли бы вы открыть проблему? –
Спасибо за подсказку, разместил ее здесь: https://github.com/JuliaLang/julia/issues/9505 – dbrunton