>问题
我有这样的东西:
task :fail do
exit 111
end
task :run_fail_and_succeed do
begin
Rake::Task['knapsack:fail'].invoke
rescue
exit 0
end
end
我想运行任务:fail
并处理它的退出状态。比退出与0
.我该怎么做?
笔记:
- 它不能是异步/并行/在后台运行。
:fail
必须在:run_fail_and_succeed
之前完成。 - 不仅以 0 退出会很好,而且真正处理此状态代码,这样我就可以根据它的值做不同的事情
rescue
具有特定类型的异常类型。在您的情况下,这应该是SystemExit
.然后,您可以检查与该异常关联的字段。
task :run_fail_and_succeed do
begin
Rake::Task['knapsack:fail'].invoke
rescue SystemExit => e
puts e.status #=> 111
# now you can handle your logic according to the exit status
end
end