- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试构建一个简单的 try-catch 语句,如下所示,但该 catch block 永远不会被执行
try {
Push-OutputBinding -ErrorAction Stop -Name outputQueueItem -Value $Object
}
catch {
Write-Error "Catching Error"
# code to catch the error
}
问题是,除了我有 ErrorAction Stop
参数之外,azure 函数不会抛出预期的终止错误。因此 catch
代码永远不会被执行。
输出日志:
[8/18/2020 9:42:11 PM] INFORMATION: 00:00:09.9511800
[8/18/2020 9:42:11 PM] Executed 'Functions.Monitor' (Failed, Id=6bf398bd-de2b-460f-a44b-db9838feff3f)
[8/18/2020 9:42:11 PM] System.Private.CoreLib: Exception while executing function: Functions.Monitor. Microsoft.WindowsAzure.Storage: Messages cannot be larger than 65536 bytes.
该错误是预料之中的,但是,catch 代码块从未执行。
运行时信息:
Azure Functions Core Tools (3.0.2630 Commit hash: beec61496e1c5de8aa4ba38d1884f7b48233a7ab)
Function Runtime Version: 3.0.13901.0
我还尝试更改变量$ErrorActionPreference = "Stop"
,但也不起作用。
最佳答案
您的脚本无法捕获此异常,因为它发生在脚本完成之后。 Push-OutputBinding
命令不会直接将数据写入 Azure 存储。相反,它只是将其存储在内部数据结构中,并且实际写入 Azure 存储的操作发生在函数完成后。
另请参阅:https://github.com/Azure/azure-functions-powershell-worker/issues/284
解决方法是将脚本更改为直接写入 Azure 存储,而不是调用 Push-OutputBinding
,以便您可以实现自己的错误处理。
关于Azure Function 不会在 Push-OutputBinding 中使用 Stop ErrorAction 引发终止错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63477100/
两者, $ErrorActionPreference 变量和 -ErrorAction cmdlet 参数应该定义 non-terminating errors 的行为. 由于变量是全局的并且参数特定
我正在编写一个脚本,在其中编写并调用一些自己的函数。我调用的第一个函数是我的日志记录设置函数,在其中我以如下方式设置日志文件: function Create-Logfile { if (!(
这可以计算* .jpg文件。 PS C:\> @([System.IO.Directory]::EnumerateFiles('C:\Users\Public\Pictures', '*.jpg',
以下代码尝试使用两种具有不同错误管理技术的函数以三种不同方式复制文件test: 本身(它应该失败,因为它不可能) 到隐藏文件(它会失败,因为默认情况下无法覆盖隐藏文件) 到不存在的文件夹(由于文件夹不
我正在编写一个需要解析JSON的脚本,并且在某些文件中出现错误。错误的原因是无效的JSON,这很好,但是我希望能够检测到该错误并在脚本中处理它。好像ConvertFrom-Json不支持-ErrorA
脚本(使用 CmdletBinding)和 cmdlet 在调用时都有一个可用的标准 -ErrorAction 参数。如果确实使用-ErrorAction调用了您的脚本,那么在您的脚本中是否有办法?
PS C:\Users\ad_ctjares> Stop-Transcript -ErrorAction silentlycontinue Transcription has not been sta
在我的脚本中,为了确定是否发生错误,我需要执行两个额外的远程查询。这些过程大约需要200毫秒,如果用户仍然忽略该错误,则毫无意义。有没有办法确定我是否被-ErrorAction SilentlyCon
我正在使用下面的代码在 O365 中使用 powershell 创建一个公共(public)组: Try { New-UnifiedGroup -AccessType Public -Ali
如何在自定义 powershell 函数中模拟 -ErrorAction。例如,考虑以下脚本 function Foo2 { Write-Host "in Foo2" #...Error oc
如果我使用ls命令在PowerShell中对磁盘进行完全递归搜索,并将ErrorAction设置为SilentlyContinue,当它命中无法访问的文件夹时,它仍会爆炸。 我可以将 call 包装在
我刚刚开始使用 AD 研究 PowerShell,所以如果这个问题看起来很明显,我深表歉意。 我正在尝试检查列表中提供的哪些设备是否在 AD 中。到目前为止,我使用的代码来自: Powershell
我在静默获取 -ErrorAction 时遇到问题继续使用 cmdlet 'Get-ADUser' 这不起作用,显示错误时是否带有 -ErrorAction? get-aduser "JSmith
下面是一个简单的Try Catch,但是当我对其进行测试时,它似乎已成功归档,因此我在变量中包含了一个不存在的位置来测试故障,但是奇怪的是,即使故障出现在ISE窗口中,输出仍然显示为导致下面的内容不太
简单的脚本: "test" | Out-File "C:\existing_file.txt" $ErrorActionPreference = "Continue" Copy-Item "C:\ex
这是一个脚本,用于列出在命令行上传递的目录/文件——是否递归: param( [switch] $r ) @gci_args = @{ Recurse = $r ErrorAction = I
这是一个脚本,用于列出在命令行上传递的目录/文件——是否递归: param( [switch] $r ) @gci_args = @{ Recurse = $r ErrorAction = I
我很难在谷歌上搜索到明确的答案。例如,throw 'temper tantrum' 之间是否存在任何实际差异?和 Write-Error 'temper tantrum' -ErrorAction S
我的情况: $ErrorActionPreference = "Stop"; "1 - $ErrorActionPreference;" Get-ChildItem NoSuchFile.txt -E
基本上,我希望能够捕获从 Invoke-SqlCmd 返回的警告,而不必停止脚本运行。以下代码不起作用: TRY { Invoke-SQLCMD -Query "selects * from
我是一名优秀的程序员,十分优秀!