Raising errors
When writing a script, it may be desirable to use errors to notify the person running the script of a problem. The severity of the problem will dictate whether an error is non-terminating or terminating.
If a script makes a single change to many diverse, unrelated objects, a terminating error might be frustrating for anyone using the script.
On the other hand, if a script fails to read a critical configuration file or fails some advanced parameter validation, a terminating error is likely the right choice.
Error records
When an error is raised in PowerShell, an ErrorRecord
object is created (explicitly or implicitly).
An ErrorRecord
object contains several fields that are useful for diagnosing an error. ErrorRecord
can be explored by using the Get-Member
or the Get-Error
command.
For example, an ErrorRecord
will be generated when attempting to divide by 0:
100 / 0
$record = $Error[0]
The ErrorRecord
object that was generated has a ScriptStackTrace...