使用 Cake 中止构建的正确方法是什么?
What is the proper way of aborting a build using Cake?
使用Error()
方法只会记录错误。但是如果我想中止构建怎么办?我可以抛出异常来中止构建,但它似乎不对。那么有没有正确的中止方法呢?
var releaseNotes = ParseReleaseNotes("./ReleaseNotes.md");
if(releaseNotes.Version.ToString() != nugetVersion)
{
Error("Release notes are missing an entry for v{0}. Latest release notes are for v{1}", nugetVersion, releaseNotes.Version);
throw new Exception();
}
好的,所以答案是抛出异常,而不是像这样使用 Error()
方法:
var releaseNotes = ParseReleaseNotes("./ReleaseNotes.md");
if(releaseNotes.Version.ToString() != nugetVersion)
{
throw new Exception("Release notes are missing an entry for v{0}. Latest release notes are for v{1}", nugetVersion, releaseNotes.Version);
}
Error
方法只是记录错误的一种便捷方法。不过我理解这种困惑。
如果出现无法恢复的错误,您应该抛出一个异常来指示它。然后 Cake 脚本运行程序将记录错误(使用 Error
方法)和 return 退出代码 1 以指示出现问题。
使用Error()
方法只会记录错误。但是如果我想中止构建怎么办?我可以抛出异常来中止构建,但它似乎不对。那么有没有正确的中止方法呢?
var releaseNotes = ParseReleaseNotes("./ReleaseNotes.md");
if(releaseNotes.Version.ToString() != nugetVersion)
{
Error("Release notes are missing an entry for v{0}. Latest release notes are for v{1}", nugetVersion, releaseNotes.Version);
throw new Exception();
}
好的,所以答案是抛出异常,而不是像这样使用 Error()
方法:
var releaseNotes = ParseReleaseNotes("./ReleaseNotes.md");
if(releaseNotes.Version.ToString() != nugetVersion)
{
throw new Exception("Release notes are missing an entry for v{0}. Latest release notes are for v{1}", nugetVersion, releaseNotes.Version);
}
Error
方法只是记录错误的一种便捷方法。不过我理解这种困惑。
如果出现无法恢复的错误,您应该抛出一个异常来指示它。然后 Cake 脚本运行程序将记录错误(使用 Error
方法)和 return 退出代码 1 以指示出现问题。