Могу ли я перехватить ошибки и перейти к следующей задаче Rake? - PullRequest
0 голосов
/ 27 марта 2020

Я вызываю Rake-задачи в другой Rake-задаче, например:

namespace :test do
  task :migrate do
    Rake::Task['A:migrate'].invoke
    Rake::Task['B:migrate'].invoke
  end
end

Я хочу знать, могу ли я перейти к следующей Rake-задаче, даже если предыдущая не удалась. Например, в A:migrate есть ошибка, я хочу перехватить ее и записать в журнал, но перейдем к B:migrate. Как я могу это сделать?

1 Ответ

1 голос
/ 27 марта 2020

Rake - это просто Ruby, поэтому вы можете использовать функцию обработки ошибок Ruby.

namespace :test do
  task :migrate do
    begin
      Rake::Task['A:migrate'].invoke
    rescue => e
      log(e)
    end
    Rake::Task['B:migrate'].invoke
  end
end
...