是否有可能获得完整的堆栈跟踪,或者在对Elixir中的引用块求值时,查看在哪行抛出错误?
例如,我有这个模块:
defmodule Test do
def trySomeQuotedCode() do
quote do
IO.puts "line 1"
IO.puts "line 2"
5/0
end
|> evalMyQuoted
end
def evalMyQuoted(quoted) do
Code.eval_quoted(quoted)
end
end
但是如果你执行它,你会看到:
它显示有一个带有:erlang./(5, 0)
的ArithmeticError
,这是正确的,但它没有显示在引用的代码中的位置。通过这个小示例,仍然很容易找到代码中的错误所在,但如果引用的代码大得多或更高级,它可能就不那么微不足道了。
那么,对于这个例子,有没有可能得到堆栈跟踪来表明错误在引用部分的求值中的“第3行”?或者从Code.eval_quoted
获取行号作为返回值
发布于 2018-11-25 15:43:32
您要查找的是Kernel.quote/2
调用中的location: :keep
选项。
https://stackoverflow.com/questions/53460350
复制相似问题