出于测试目的,我想创建一个总是崩溃的“假”过程。
由于我正在使用Powershell来实现这一点,我正在考虑使用一个只抛出异常的命令运行另一个PS实例(throw 'test'
)。
在这么简单的任务中敲了几分钟后,我发现:
powershell -command "& throw 'test'"
产生错误“抛出不理解”,但是:
powershell -command "& { throw 'test' }"
抛出我想要的异常。
有什么区别?为什么我需要在投掷周围使用花括号?
答案 0 :(得分:4)
在第一个版本中,您尝试调用名为throw的程序,因此失败。
如果您只是这样做,它实际上会正常工作:
powershell -command "throw 'test'"
在第二个版本中,您使用花括号,因此表达式由&
作为脚本块进行评估,而不是尝试调用程序