试着说标题五次连续...
也许这个帖子可以被归类为一个愚蠢的PowerShell的伎俩。或者,这只是我泄密关于我多么希望错误处理在PowerShell中的工作以某种方式(它始终是一个痛苦的话题)。总之,我在写一个脚本,并考虑到CTP3现在支持好老try和catch错误处理方法。我的错误处理逻辑,当然,用它。问题是...错误没有雨后春笋般冒出来,我想他们应该。
要启动我们失望解释为什么我遇到了我的问题,困惑,或者你想叫它什么的路径。让我们第一次启动一个基本的脚本:
#我的脚本
尝试{
“没有错误”
扔
“我不应该来的。”
}
抓{
“这已经陷入”
}
如果执行上面的脚本,将产生一个错误,然后将其捕获。直线前进......现在,让我们展开的复杂性和增加的功能:
#我的脚本与函数
功能myfunction1 {
“看我在一个函数”
扔
}
尝试{
“没有错误”
myfunction1
“我不应该来的。”
}
抓{
“这已经陷入”
}
再次,如果执行该脚本产生的错误,然后将其捕获。然而,在这种情况下,在函数内部产生的错误,更重要的是我从来没有以“我不应该来这里”字符串。
现在,考虑的东西远一点,让我们做函数内的一个尝试和catch:
#我的脚本与具有try和catch一个功能
功能myfunction2 {
尝试{
“看我在一个函数”
扔
}
抓{
返回$错误[0]
}
}
尝试{
“没有错误”
myfunction2
“我不应该来的。”
}
抓{
“这已经陷入”
}
而且,如果你现在执行这个脚本,你会看到,我遇到的问题。无论是从函数返回一个错误的事实,脚本继续执行。这意味着,我到了“我不应该来这里”的字符串,尽管应该阻止脚本的继续执行的错误状态。这是一个错误,就应该像这样的工作,或者是我的逻辑只是有缺陷。对于原因,我在我的脑海,如果一个函数try和catch块中调用,如果该函数返回一个错误的对象。然后抓应该一命呜呼
是...是...我知道你在说什么。只是检查错误的对象,但我很懒。
如果你喜欢这个,看看泰森一些其他职位:
- 我会信任你,如果每个人都信任你?
- 这里是一个很好的问题:是脚本编程或者只是系统管理?
- PowerShell的男孩和失踪的cmdlet的情况下!
- 有趣的使用PowerShell 2.0三项赛!
- 创建ASP.NET Web应用程序自定义404页,手柄链接重定向
- 微软中止支持Windows 3.X(如嵌入式系统)
- 我对在PowerShell中的SSH任务重新!
或者,如果你愿意,你还可以检查出一些泰森的最新出版物:
- Windows PowerShell中偷跑(2ND版)
- Windows Server 2008的偷跑(是的,我确实帮助这本书)