private/PipelineObject/Exit-Processing.ps1
|
Function Exit-Processing { <# .DESCRIPTION Checks for PipelineObject initialization errors and throws an exception if any are found. #> [OutputType([Hashtable])] [CmdletBinding()] param ( [Parameter(Mandatory,ValueFromPipeline)] [Hashtable] $PipelineObject ) process { try { # Setup the error message template. $errorMessage = [System.Environment]::NewLine + $( 'PipeLineObject Initialization Error:') + [System.Environment]::NewLine + $(' Function: {0}, line: {1}' ) + [System.Environment]::NewLine + $(' Error Message: {2}' ) + [System.Environment]::NewLine + $(' Code Statement: {3}' ) + [System.Environment]::NewLine + $(' Stack Trace: {4}' ) + [System.Environment]::NewLine + $(' PowerShell: {5} {6} on {7}' ) # Get the current invocation object. $i = $PipelineObject._Invocation[$PipelineObject._Invocation.ID] # Check parameter testing errors. if ( $i.Tests.Successful ) { Write-Output $PipelineObject } else { $PipelineObject.ResultMessage = $errorMessage -f $i.CallName, $i.EntryPointLineNumber, $( 'PipelineObject Initialization Error: {0}' -f ($i.Tests.Errors -join ". ") ), $i.EntryPointStatement, $i.EntryPointPosition, $PSVersionTable.PSVersion.ToString(), $PSVersionTable.PSEdition, $PSVersionTable.Platform Throw 'psToolkit: PipelineObject Initialization Error.' } } catch { $PipelineObject.Success = $false Write-Msg -e -m $PipelineObject.ResultMessage } } } |