1
使用Rails 3.2.x中和Ruby 1.9.3如何驗證ERB或捕捉ERB的SyntaxError
給定一個惡意形成的ERB模板,我該怎麼辦下列之一:
- 驗證如果是壞的
- 捕捉當我試圖得到一個壞的模板的結果是再培訓局拋出的SyntaxError模板,並引發錯誤。
我認爲這會工作:
template = "Hello <%= @planet name %>"
@planet_name = "Earth"
begin
ERB.new(template,nil).result(binding)
rescue
Raise StandardError, "Bad Erb template"
end
但事實並非如此。相反,我得到ERB一個SyntaxError。
有沒有一種方法來捕捉/驗證這些錯誤?
無參數的rescue子句捕獲StandardError,而SyntaxError不是StandardError的子類。 http://www.ruby-doc.org/core-1.9.3/SyntaxError.html – 2013-02-13 15:23:53