catch_backtrace的用法

时间:2016-02-12 11:41:42

标签: julia

最近,我发现catch_backtrace仅在catch之后立即调用时才有效。这是预期的行为吗?我正确使用backtrace吗?

try
    div(1,0)
catch e
    bt = catch_backtrace()
    showerror(STDOUT, e, bt)
end

DivideError: integer division error
 in div at ./int.jl:79
 in include_string at loading.jl:266
 in execute_request_0x535c5df2 at /usr/local/share/julia/site/v0.4/IJulia/src/execute_request.jl:177
 in eventloop at /usr/local/share/julia/site/v0.4/IJulia/src/IJulia.jl:141
 in anonymous at task.jl:447

try
    div(1,0)
catch e
    println(3)
    bt = catch_backtrace()
    showerror(STDOUT, e, bt)
end

3
DivideError: integer division error

1 个答案:

答案 0 :(得分:2)

这似乎与IJulia隔离开来。我无法在REPL上重现,并且我在脚本中多次使用catch_backtrace()(在其他调用之后)。