줄리아 매크로를 사용하여 작업 할 때 시행 착오 프로그램으로 돌아가는 것처럼 보입니다. 표현식에 오류가 있으면 간단한 매크로를 작성하고 표현식이 실패하면 플래그를 설정하려고합니다. 호출 컨텍스트에서 표현식 (하나 이상의 지정 문을 포함 할 가능성이 높음)을 평가하기 때문에 매크로입니다. 그래서, 뭔가 같은 :줄리아 할당에서 오류를 잡을 매크로
macro flag_errors(ex)
broken = false
esc(quote
try
$(ex)
catch
broken = true
end
end)
end
나는 esc
기능을 중첩의 다양한 방법을 시도했습니다,하지만 난 제대로 호출 환경에서 할당을 평가하는 방법을 찾기 위해 아직 :
julia> @flag_errors a=2
2
julia> a
a not defined
julia> @flag_errors a=2+"X"
true
julia> a
a not defined
julia> broken
broken not defined
무엇을 이 매크로를 작성하는 올바른 방법은? try
블록이 문제의 원인입니까?
extras/test.jl 향상을 위해 설치 블록에서 오류를 잡으려고합니다. 이상적으로는, 테스트 스위트 리포팅이 깨지지 않는 방식으로 에러가 잡힐 것입니다. – Harlan