【问题标题】:Force ruby to hide backtrace on exception强制红宝石隐藏异常回溯
【发布时间】:2011-07-18 11:04:21
【问题描述】:

我用Rakefile做一些平常的工作,比如编译、链接等等。

当编译失败时,ruby 会显示发生任务错误的完整回溯,但这对我来说真的没用,甚至更多:这个回溯隐藏了编译错误。

$ 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!”之后隐藏所有内容! ?

【问题讨论】:

标签: rakefile


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2011-02-08
    • 1970-01-01
    • 2012-03-02
    • 2012-12-14
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    • 2011-04-18
    • 1970-01-01
    相关资源
    最近更新 更多