【发布时间】:2015-08-29 12:39:10
【问题描述】:
我刚刚开始学习 Git 和 Powershell,并尝试创建一个不复杂的 PS 脚本来同步 Git 的分支。
我想捕获在 powershell 中执行 git 命令期间可能发生的异常。
这是我的代码的摘录,我尝试使用标准的 try/catch 方法:
try { git reset --hard origin/master }
catch {
LogMessage ("Failure on syncing files from the GitHub")
LogMessage $_.Exception.Message;
Return
}
LogMessage 是一个在文件中输出异常的函数。我使用 Posh-Git 运行脚本。
由于某些原因,这不起作用。 catch 不收集异常,不执行 return 命令,脚本仍在运行。
我错过了什么?
提前致谢,祝您有美好的一天。
【问题讨论】:
-
好吧,您是否验证过您的脚本确实确实 进入了 catch 块,例如通过将简单的消息打印到控制台或类似的东西?
-
设置错误动作停止。
-
是的,我检查了脚本在异常发生时没有进入 catch 块。看起来 git 异常不是由 PowerShell 处理的。
-
对于 ErrorAction 参数 - 看起来该参数对于 PowerShell 命令是实际的,但对于 Git 命令不是。当我尝试使用 ErrorAction 参数运行时,脚本失败 - “git : error: unknown switch `E'”
标签: powershell-3.0