2011-03-18 4 views
3

에 역 추적을 숨기려면 내가 할 등 컴파일, 링크, 같은 Rakefile 몇 가지 일반적인 작업포스 루비 예외

컴파일 루비 작업 오류가 발생하는 전체 역 추적을 표시 실패,하지만 나를 위해 정말 쓸모, 훨씬 더 :이 백 트레이스는 컴파일 오류를 숨 깁니다.

$ rake 
mkdir -p build 
llvm-as source/repl.ll -o build/repl.bc 
llvm-as: source/repl.ll:6:22: error: expected value token 
    call i32 @fputc(i8 'x', i32 0) 
       ^
rake aborted! 
Command failed with status (1): [llvm-as source/repl.ll -o build/repl.bc...] 
/usr/local/lib/ruby/1.9.1/rake.rb:993:in `block in sh' 
/usr/local/lib/ruby/1.9.1/rake.rb:1008:in `call' 
/usr/local/lib/ruby/1.9.1/rake.rb:1008:in `sh' 
/usr/local/lib/ruby/1.9.1/rake.rb:1092:in `sh' 
... 

"rake aborted!" ?

+0

의 사용 가능한 복제 [? 레일의 역 추적을 억제하는 방법 (http://stackoverflow.com/questions/16304905/how-to-suppress-backtrace-in-rails) – Nakilon

답변

5

rake 작업에서 "sh"명령을 사용하여 컴파일러를 시작한 것 같습니다. 이 경우 RuntimeError를 catch하여이 오류를 가져와야합니다. 이런 식으로 뭔가 :

task "foo" do 
    begin 
    sh "bar" 
    rescue RuntimeError => e 
    puts e.message 
    exit(1) 
    end 
end