Handle a terminating error (exception).
Syntax trap [[error_type]] {statement_list} Key error_type The terminating error to trap, requires [brackets]. statement_list A scriptblock of code to be run.
The Trap statement includes a list of statements to run when a terminating error occurs.
By default, this will trap any terminating error or optionally you may specify an error type.
A script or command can have multiple Trap statements. Trap statements can appear anywhere in the script or command.
The common PowerShell option -SilentlyContinue will cause any Throw statement to be completely ignored. This can be mitigated by using Try/Catch or by adding a trap {} statement to trap the error.
Examples
A simple trap that will traps any terminating error displays the error by using the $_ automatic variable:
function TrapTest { trap {"Error found: $_"} thiswontwork } C:\PS> TrapTest Error found: The term 'thiswontwork' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included verify that the path is correct, and then try again.
Use the Break and Continue keywords in a Trap statement to determine whether a script or command will continue to run after a terminating error.
A Break statement within a Trap statement will stop the function or script:
{ trap {"Error trapped"; break;}
A Continue statement within a Trap statement will resume execution after the statement that caused the error, just as it would without Break or Continue.
{ trap {"Error trapped"; continue;}
"When elephant steps on a trap, no more trap" ~ African proverb
Related PowerShell Cmdlets:
Try ... Catch - Handle a terminating error within a scriptblock
about_Try_Catch_Finally