Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 救援耙任务_Ruby_Rake - Fatal编程技术网

Ruby 救援耙任务

Ruby 救援耙任务,ruby,rake,Ruby,Rake,我的Rakefile中有许多文件任务 file 'task1' => 'dep' do sh "some command" end 还有 task :start => :next task :last => :dep2 我想知道是否有办法在高层拯救它,也就是说 begin task :last => :dep2 rescue # do something end 而不是在每个文件中执行任务 file 'task1' => 'dep' do be

我的Rakefile中有许多文件任务

file 'task1' => 'dep' do
  sh "some command"
end
还有

task :start => :next
task :last => :dep2
我想知道是否有办法在高层拯救它,也就是说

begin
  task :last => :dep2
rescue
  # do something
end
而不是在每个
文件中执行任务

file 'task1' => 'dep' do
  begin
    sh "some command"
  rescue
    # do something
  end
end

有可能吗?

没有,但您可以定义自定义方法来简化任务

def safe_task(&block)
  yield
rescue
  # do something
end

file 'task1' => 'dep' do
  safe_task do
    sh "some command"
  end
end

另外,请记住,is
:task2
取决于
:task1
:task1
可能引发异常,您应该处理
:task1
中的错误,而不是
:task2

再次感谢,您知道有什么方法可以钩住呈现堆栈跟踪或类似内容的函数吗?