当前位置: 首页 > 编程笔记 >

什么是PowerShell中的终止和非终止错误?

时宾实
2023-03-14
本文向大家介绍什么是PowerShell中的终止和非终止错误?,包括了什么是PowerShell中的终止和非终止错误?的使用技巧和注意事项,需要的朋友参考一下

Powershell执行脚本或命令时会生成两种类型的错误。终止错误和非终止错误。

终止错误-该错误是由您创建的脚本,函数或命令生成的,并且会停止或停止脚本的执行,从而导致下一行中的命令无法执行。要处理此错误,需要适当的机制,否则将显示错误消息。

例如,

PS C:\WINDOWS\system32>> This-commandnotexist
This-commandnotexist : The term 'This-commandnotexist' is not recognized as
the name of a
cmdlet, function, script file, or operable program. Check the spelling of the
name, or if a
path was included, verify that the path is correct and try again.
At line:1 char:1
+ This-commandnotexist
+ ~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (This-commandnotexist:String)
[], CommandNotFo
undException
+ FullyQualifiedErrorId : CommandNotFoundException

非终结错误-此错误通常由内部cmdlet生成,并且仅由内部cmdlet自动处理,但该错误不会终止管道的执行。您无法自动处理此类错误,因为默认情况下$ErrorActionPreference的值为$Continue,但是有些方法可以通过将非终止错误转换为终止错误来进行处理。

在下面的示例中,我们将搜索不存在的计算机上的逻辑磁盘。

PS C:\WINDOWS\system32>> Get-WmiObject -Class Win32_Logicaldisk -ComputerName
Nonexist
Get-WmiObject : The RPC server is unavailable.
At line:1 char:1
+ Get-WmiObject -Class Win32_Logicaldisk -ComputerName Nonexist
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Get-WmiObject],
COMException
+ FullyQualifiedErrorId :
GetWMICOMException,Microsoft.PowerShell.Commands.GetWmiO bjectCommand

上面的错误是由cmdlet生成的,它是一个非终止错误。您可以使用ErrorAction cmdlet,$ErrorActionPreference变量来处理终止和非终止错误(通过将它们转换为终止错误),然后尝试,捕获并最终阻止。

 类似资料:
  • 假设我运行了一个带有ErrorAction Stop的命令,它生成了一个错误。我想知道错误最初是否终止?我有ErrorVariable或$Error对象。ErrorVariable能捕捉两种错误吗?我正在寻找一处房产。NET/PowerShell对象,它可以告诉我这个错误正在终止。非终止错误也会产生异常吗? 另外,当我在控制台上写一个命令时(不是ISE也没有运行脚本,只是在控制台上写一个命令),我

  • 我想捕捉和处理非终止错误,但使用-ErrorAction SilentlyContinue。我知道我需要使用-ErrorAction-Stop来捕获非终止错误。该方法的问题是,我不希望try脚本块中的代码实际停止。我希望它继续,但处理非终止错误。我也希望它保持沉默。这可能吗?也许我走错了方向。 我想处理的非终止性错误的一个例子是从Get-Childitem访问关键字文件夹的拒绝访问错误。这是一个例

  • 我正在使用power shell控制台运行以下power外壳脚本: 这将打印错误。然后继续并打印“创建的新对象”和“结束”。所以我假设这是一个非终结性错误。 但是,如果我将try catch块放在新对象周围,如下所示: 在这种情况下,捕获块被击中并写入异常消息。 我的问题是: < li >这是一个非终止错误吗?这看起来像是一个非终止性错误,因为在错误之后继续执行(当没有try catch块时)。

  • 问题内容: 我正在尝试使用H2OR内的库在具有7000万行和25个数字特征的训练集上使用随机森林分类模型。总文件大小为5.6 GB。 验证文件的大小为1 GB。 我的系统上有16 GB RAM和8核CPU。 系统成功读取了H2O对象中的两个文件。 然后,我给出以下命令来构建模型: 但是几分钟(不生成任何树)后,出现以下错误: “ .h2o.doSafeREST中的错误(conn = conn,h2

  • 终止容器 可以使用 docker container stop 来终止一个运行中的容器。 此外,当 Docker 容器中指定的应用终结时,容器也自动终止。 例如对于上一章节中只启动了一个终端的容器,用户通过 exit 命令或 Ctrl+d 来退出终端时,所创建的容器立刻终止。 终止状态的容器可以用 docker container ls -a 命令看到。例如 docker container ls

  • 我对使用rxjava进行反应性编程是新手,在经历了更简单的示例之后,我现在试图弄清楚如何使用连续流。下面这个例子的问题是,在我接受了3个元素后,程序不会终止。我的假设是,我不知何故需要取消订阅我的可观察的,但我不完全掌握如何终止while循环并使程序退出。 我遇到了下面的RxJava帖子--终止无限流,但我仍然不知道我遗漏了什么。