2016-02-12 85 views
1

最近,我發現catch_backtrace只有在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 
+0

我認爲將這些曲目打印到'STDERR'會更好。 – SalchiPapa

回答

2

這似乎與IJulia隔離。我無法在REPL上覆制,而且我在腳本中多次使用catch_backtrace()(在其他調用之後)。