-
Notifications
You must be signed in to change notification settings - Fork 99
Audit use of terminating errors #331
Copy link
Copy link
Open
Labels
breaking-changeThis issue requires a breaking change to remediate.This issue requires a breaking change to remediate.feature-requestA feature should be added or improved.A feature should be added or improved.module/powershell-cmdletsneeds-major-versionCan only be considered for the next major releaseCan only be considered for the next major releasep2This is a standard priority issueThis is a standard priority issuequeuedvNext
Description
Metadata
Metadata
Assignees
Labels
breaking-changeThis issue requires a breaking change to remediate.This issue requires a breaking change to remediate.feature-requestA feature should be added or improved.A feature should be added or improved.module/powershell-cmdletsneeds-major-versionCan only be considered for the next major releaseCan only be considered for the next major releasep2This is a standard priority issueThis is a standard priority issuequeuedvNext
Type
Fields
Give feedbackNo fields configured for issues without a type.
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