Powershell: Get-Date -UFormat '' throws an unhelpful exception for an empty string argument

Created on 7 Oct 2017  路  3Comments  路  Source: PowerShell/PowerShell

An empty string argument in Get-Date -UFormat '' throws IndexOutOfRangeException, it would be more helpful if the error said what was wrong and directed attention to the UFormat argument. "Missing or Invalid UFormat String" or words to that effect.

Steps to reproduce

PS /test> get-date -uformat "$accidentallyEmptyFormatStringVariable"
get-date : Index was outside the bounds of the array.
At line:1 char:1
+ get-date -uformat ''
+ ~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Get-Date], IndexOutOfRangeException
    + FullyQualifiedErrorId : System.IndexOutOfRangeException,Microsoft.PowerShell.Commands.GetDateCommand

Expected behavior

A message directing attention to the -UFormat string parameter being empty.

Actual behavior

A message about some internal problem.

Environment data

> $PSVersionTable
Name                           Value
----                           -----
PSVersion                      6.0.0-beta.8
PSEdition                      Core
GitCommitId                    v6.0.0-beta.8
OS                             Linux 2.6.32-042stab120.6 #1 SMP Thu Oct 27 16:59:03 MSK 2016
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

Area-Cmdlets-Utility Hacktoberfest Resolution-Fixed Up-for-Grabs

Most helpful comment

I'll work on this one.

All 3 comments

Agree, all error messages should be actionable by the user (or informative if not possible)

I'll work on this one.

@DdWr Thanks for grab this. Typically, beginners receive most style comments. Please read out Coding Guidelines. Mainly you should follow the style of the surrounding code. Also please add a test (use our ShouldBeErrorId function). Put new error message in appropriate Resx file.

Was this page helpful?
0 / 5 - 0 ratings