Chapter 15. Tracing and Error Management

15.0 Introduction

What if it doesn’t all go according to plan? This is the core question behind error management in any system and it plays a large part in writing PowerShell scripts as well.

Although this is a chief concern in many systems, PowerShell’s support for error management provides several unique features designed to make your job easier. The primary benefit is a distinction between terminating and nonterminating errors.

When you’re running a complex script or scenario, the last thing you want is for your world to come crashing down because a script can’t open one of the thousand files it’s operating on. Although the system should make you aware of the failure, the script should still continue to the next file. That’s an example of a nonterminating error. But what if the script runs out of disk space while running a backup? That should absolutely be an error that causes the script to exit—also known as a terminating error.

Given this helpful distinction, PowerShell provides several features that let you manage errors generated by scripts and programs, and also allows you to generate errors yourself.

15.1 Determine the Status of the Last Command


You want to get status information about the last command you executed, such as whether it succeeded.


Use one of the two variables PowerShell provides to determine the status of the last command you executed: the $lastExitCode variable and the $? variable.

$lastExitCode ...

Get PowerShell Cookbook, 4th Edition now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.