2011-03-18 65 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

的可能的复制[?如何抑制Rails的回溯(http://stackoverflow.com/questions/16304905/how-to-suppress-backtrace-in-rails) – Nakilon 2016-07-16 12:22:04

回答

5

看来您在rake任务中使用“sh”命令来启动编译器。在这种情况下,您应该捕获一个RuntimeError,以获取此错误。事情是这样的:

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