将bactrace异常转换为Julia中的字符串
Julia中有一个函数,我想调用一组参数。它可能会抛出一个exeption,我想用bactrace将它转换成一个字符串,并记录它以供进一步检查将bactrace异常转换为Julia中的字符串,julia,Julia,Julia中有一个函数,我想调用一组参数。它可能会抛出一个exeption,我想用bactrace将它转换成一个字符串,并记录它以供进一步检查 for i in 1:100 try myfun(i) catch ex println(ex) println(bactrace(ex)) # does not work end end 在朱莉娅身上怎么能做到这一点呢?在代码中再搜索一点,就会发现这种方法是有效的。它使用了一个未
for i in 1:100
try
myfun(i)
catch ex
println(ex)
println(bactrace(ex)) # does not work
end
end
在朱莉娅身上怎么能做到这一点呢?在代码中再搜索一点,就会发现这种方法是有效的。它使用了一个未在API中导出的函数,因此将来可能会中断,但现在它会向我打印一个堆栈跟踪
try
function()
catch ex
Base.error_show(STDERR, ex, catch_backtrace())
end
我知道这是个老问题,但我发现:
Base.show_backtrace(io, bt)
只显示回溯,并且
sprint(io->Base.show_backtrace(io, bt))
将其打印到字符串中,以备记录
编辑:上一个答案中显示的错误现在是错误;看来
str = showerror(STDOUT, ex, catch_backtrace())
资料来源:
更新2:在v0.5中,您只需执行stacktrace()
和catch\u stacktrace()
虽然你必须循环通过StackTrace数组来打印它
资料来源: