Audit use of terminating errors #331
Labels
breaking-change
This issue requires a breaking change to remediate.
feature-request
A feature should be added or improved.
module/powershell-cmdlets
needs-major-version
Can only be considered for the next major release
p2
This is a standard priority issue
queued
v5
Describe the feature
Review the use of terminating errors in AWS PowerShell cmdlets and only use terminating errors where absolutely necessary. Especially in "Get" verb cmdlets.
Use Case
This started for me with Get-ACCTAlternateContact and the error "No contact of the inputted alternate contact type found." See:
#327 (comment)
#327 (comment)
However, I think it's a pretty widespread inconvenience in the AWS PowerShell codebase.
-ErrorAction
. You have to use try/catch to handle the errors which is not friendly for interactive shell/command line. (less of a problem for scripted usage)Get-Content .\AccountList.txt | ForEach-Object {Get-ACCTAlternateContact -AccountId $_ -AlternateContactType BILLING} | Export-Csv -Path .\billingContacts.csv
- if there are 5 items and a terminating error on item 3, the remaining items are not processed.@jnunn-aws says this is by according to PowerShell precedent but most PowerShell "Get" verb cmdlets don't throw terminating errors.
E.g.:
All of the above return non-terminating errors and honor
-ErrorAction
.Unless it's really critical, I'd expect cmdlets to emit a non-terminating errors that I can use -ErrorAction on and that do not interrupt the pipeline.
Proposed Solution
No response
Other Information
No response
Acknowledgements
AWS Tools for PowerShell version used
4.1.396
PowerShell version used
Name Value
PSVersion 7.3.6
PSEdition Core
GitCommitId 7.3.6
OS Microsoft Windows 10.0.22621
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
Operating System and version
Windows 11
The text was updated successfully, but these errors were encountered: