mirror of
https://github.com/Shopify/liquid.git
synced 2026-09-20 03:10:39 -07:00
introduce unhandled liquid exception
check arity
This commit is contained in:
@@ -93,10 +93,10 @@ module Liquid
|
|||||||
rescue MemoryError => e
|
rescue MemoryError => e
|
||||||
raise e
|
raise e
|
||||||
rescue UndefinedVariable, UndefinedDropMethod, UndefinedFilter => e
|
rescue UndefinedVariable, UndefinedDropMethod, UndefinedFilter => e
|
||||||
context.handle_error(e, token.line_number)
|
context.handle_error(e, token.line_number, token.raw)
|
||||||
output << nil
|
output << nil
|
||||||
rescue ::StandardError => e
|
rescue ::StandardError => e
|
||||||
output << context.handle_error(e, token.line_number)
|
output << context.handle_error(e, token.line_number, token.raw)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ module Liquid
|
|||||||
@interrupts.pop
|
@interrupts.pop
|
||||||
end
|
end
|
||||||
|
|
||||||
def handle_error(e, line_number = nil)
|
def handle_error(e, line_number = nil, raw_token = nil)
|
||||||
if e.is_a?(Liquid::Error)
|
if e.is_a?(Liquid::Error)
|
||||||
e.template_name ||= template_name
|
e.template_name ||= template_name
|
||||||
e.line_number ||= line_number
|
e.line_number ||= line_number
|
||||||
@@ -82,7 +82,9 @@ module Liquid
|
|||||||
output = nil
|
output = nil
|
||||||
|
|
||||||
if exception_handler
|
if exception_handler
|
||||||
result = exception_handler.call(e)
|
args = [e]
|
||||||
|
args << { line_number: line_number, raw_token: raw_token } if exception_handler.arity == 2
|
||||||
|
result = exception_handler.call(*args)
|
||||||
case result
|
case result
|
||||||
when Exception
|
when Exception
|
||||||
e = result
|
e = result
|
||||||
|
|||||||
Reference in New Issue
Block a user