2010-11-24 11 views
11

J'apprends encore Rake.Rake Task: gestion des erreurs

Est-ce que Rake a un support intégré pour gérer l'erreur de la tâche comme MSBuild de NANT: si cette tâche a échoué; exécuter des tâches anoter (roulement arrière, etc.)

par exemple: en MSBuild ils ont élément OnError

<OnError ExecuteTargets="RollBackDatabase" /> 

Merci pour votre aide

Répondre

11

trouvé la réponse:

il suffit d'utiliser la normale exception bloc de manipulation

task :will_fail_task do 
    begin 
    raise "something's wrong here" 
    rescue 
    rollback() 
    raise "error executing task" 
    end 
end 
+0

Existe-t-il un moyen de le faire un peu plus icalement? Nous pouvons donc avoir une tâche échouée qui est exécutée si une autre tâche échoue. – dsample

+0

juste une idée, je voudrais créer une tâche avec try catch block; à l'intérieur du bloc try, j'exécuterais/appellerais/invoquerais toutes les tâches plus petites. N'oubliez pas de réactiver avant d'appeler la tâche (si nécessaire) – kite