2013-07-06 1 views
1

나는 줄리아에 함수가 있습니다. 일련의 인수를 원합니다. 그것은 exeption을 던질 수도 bactrace와 문자열로 변환하고 추가 시험을 위해 그것을 기록 싶어요.bactrace로 예외를 줄리아의 문자열로 변환

for i in 1:100 
    try 
     myfun(i) 
    catch ex 
     println(ex) 
     println(bactrace(ex)) # does not work 
    end 
end 

줄리아에서 어떻게 할 수 있습니까?

답변

1

코드에서 더 많은 검색을하면 이러한 종류의 작동이 발견됩니다. API에서 내 보내지 않은 함수를 사용하므로 나중에 중단 될 수 있지만 지금은 스택 추적을 인쇄합니다.

try 
    function() 
catch ex 
    Base.error_show(STDERR, ex, catch_backtrace()) 
end 
5

나는 그것이 약간 오래된 질문 알고 있지만, 여기에 내가 무엇을 발견 :

Base.show_backtrace(io, bt) 

그냥 백 트레이스를 표시하고 경우에 문자열로

sprint(io->Base.show_backtrace(io, bt)) 

인쇄 그것은 당신이 원하는 그것을 기록하십시오.

편집 : 이전 답변의 error_show는 showerror입니다. https://groups.google.com/forum/#!topic/julia-users/S485_5jG2Nw

업데이트 2 : V0.5 광고에서 당신은 그냥 할 수 stacktrace()

당신이 그것을 인쇄 할 스택 추적의 배열을 통해 루프 거라고하지만 catch_stacktrace() AFAIK는

str = showerror(STDOUT, ex, catch_backtrace()) 

소스 보인다 .

출처 : https://docs.julialang.org/en/stable/manual/stacktraces/