Bird
Raised Fist0
PowerShellscripting~5 mins

$Error automatic variable in PowerShell - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of the $Error automatic variable in PowerShell?

The $Error variable stores a list of error objects from the current PowerShell session. It helps you see recent errors that happened during script or command execution.

Click to reveal answer
beginner
How can you access the most recent error using $Error?

You can get the most recent error by using $Error[0]. This shows the last error that occurred.

Click to reveal answer
beginner
True or False: $Error only stores errors from the current script, not from previous commands in the session.

False. $Error stores errors from the entire current session, including previous commands and scripts.

Click to reveal answer
intermediate
How can you clear the $Error variable to remove all stored errors?

You can clear $Error by running $Error.Clear(). This empties the error list.

Click to reveal answer
intermediate
What type of objects does $Error store?

$Error stores error record objects. These objects contain details like error message, error type, and where the error happened.

Click to reveal answer
What does $Error[0] represent in PowerShell?
AThe total number of errors
BThe oldest error
CThe most recent error
DClears all errors
How do you clear all errors stored in $Error?
A<code>$Error.Clear()</code>
B<code>Clear-Error</code>
C<code>Remove-Item $Error</code>
D<code>$Error = $null</code>
Which of these is NOT true about $Error?
AIt automatically clears after each command
BIt stores error objects from the current session
CIt contains detailed error information
DIt is an automatic variable in PowerShell
What kind of information can you find in an error object stored in $Error?
AUser's password
BError message and where it happened
CSystem uptime
DList of running processes
If you want to see all errors from your session, which command would you use?
A<code>Clear-Error</code>
B<code>Get-Error</code>
C<code>Show-Error</code>
D<code>$Error</code>
Explain what the $Error automatic variable is and how you can use it in PowerShell.
Think about how you check and manage errors after running commands.
You got /4 concepts.
    Describe how you would find details about the last error that happened in your PowerShell session.
    Focus on the first item in the $Error list.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the PowerShell automatic variable $Error store?
      easy
      A. A list of recent errors encountered during the session
      B. All successful command outputs
      C. User input history
      D. System environment variables

      Solution

      1. Step 1: Understand the purpose of $Error

        $Error automatically collects errors that occur during the PowerShell session.
      2. Step 2: Differentiate from other variables

        It does not store outputs, inputs, or environment variables, only errors.
      3. Final Answer:

        A list of recent errors encountered during the session -> Option A
      4. Quick Check:

        $Error stores errors [OK]
      Hint: Remember: $Error always holds recent errors [OK]
      Common Mistakes:
      • Thinking $Error stores command outputs
      • Confusing $Error with environment variables
      • Assuming $Error stores user inputs
      2. Which of the following is the correct way to clear all errors stored in $Error?
      easy
      A. Clear-Error
      B. $Error = $null
      C. $Error.Clear()
      D. Remove-Variable $Error

      Solution

      1. Step 1: Identify the method to clear errors

        $Error is an automatic variable with a method Clear() to empty its contents.
      2. Step 2: Evaluate other options

        Assigning $null or removing the variable does not properly clear the error collection; Clear-Error is not a valid cmdlet.
      3. Final Answer:

        $Error.Clear() -> Option C
      4. Quick Check:

        Use $Error.Clear() to clear errors [OK]
      Hint: Use $Error.Clear() to empty errors quickly [OK]
      Common Mistakes:
      • Trying to assign $null to $Error
      • Using non-existent cmdlets like Clear-Error
      • Removing $Error variable instead of clearing
      3. Given this PowerShell code:
      Try { Get-Item 'C:\nonexistentfile.txt' } Catch { Write-Host 'Error caught' }
      $latestError = $Error[0]
      Write-Output $latestError.Exception.Message

      What will be the output?
      medium
      A. Error caught
      B. Cannot find path 'C:\nonexistentfile.txt' because it does not exist.
      C. No errors found
      D. Get-Item : The term 'Get-Item' is not recognized

      Solution

      1. Step 1: Understand the Try-Catch block behavior

        The command tries to get a file that does not exist, causing an error caught by Catch, which writes 'Error caught'.
      2. Step 2: Analyze $Error[0] and output

        $Error[0] holds the most recent error object. Accessing Exception.Message outputs the detailed error message about the missing file.
      3. Final Answer:

        Cannot find path 'C:\nonexistentfile.txt' because it does not exist. -> Option B
      4. Quick Check:

        $Error[0].Exception.Message shows error details [OK]
      Hint: Remember $Error[0] is newest error object [OK]
      Common Mistakes:
      • Confusing Write-Host output with $Error content
      • Expecting 'Error caught' from Write-Host as output
      • Assuming no error is stored in $Error
      4. You run this code:
      Get-Item 'C:\missingfile.txt'
      Write-Output $Error[0]

      But the output is empty. What is the likely reason?
      medium
      A. The error was cleared before accessing $Error
      B. Get-Item succeeded, so no error was recorded
      C. $Error variable is not available in this session
      D. You must use $Errors instead of $Error

      Solution

      1. Step 1: Check if error occurred

        Since the file is missing, Get-Item should cause an error and populate $Error.
      2. Step 2: Consider why $Error[0] is empty

        If $Error was cleared (e.g., by $Error.Clear()) before accessing, it will be empty despite the error.
      3. Final Answer:

        The error was cleared before accessing $Error -> Option A
      4. Quick Check:

        Clearing $Error empties error list [OK]
      Hint: Check if $Error was cleared before reading it [OK]
      Common Mistakes:
      • Assuming $Error is empty if no error occurred
      • Confusing $Error with $Errors variable
      • Thinking $Error is unavailable in session
      5. You want to write a script that tries to get a file, and if it fails, clears the error list and logs the error message only once. Which code snippet correctly uses $Error to achieve this?
      hard
      A.
      Try { Get-Item 'C:\file.txt' } Catch { $Error.Clear(); Write-Output $Error[0].Exception.Message }
      B.
      Try { Get-Item 'C:\file.txt' } Catch { Write-Output $Error.Clear(); Write-Output $Error[0].Exception.Message }
      C.
      Get-Item 'C:\file.txt' -ErrorAction SilentlyContinue; Write-Output $Error[0].Exception.Message; $Error.Clear()
      D.
      Try { Get-Item 'C:\file.txt' } Catch { $msg = $Error[0].Exception.Message; $Error.Clear(); Write-Output $msg }

      Solution

      1. Step 1: Identify correct error handling and clearing order

        Try { Get-Item 'C:\file.txt' } Catch { $msg = $Error[0].Exception.Message; $Error.Clear(); Write-Output $msg }
        captures the error message from $Error[0], then clears the error list, then outputs the message.
      2. Step 2: Check other options for mistakes

        Try { Get-Item 'C:\file.txt' } Catch { Write-Output $Error.Clear(); Write-Output $Error[0].Exception.Message }
        clears errors before reading message (wrong order).
        Get-Item 'C:\file.txt' -ErrorAction SilentlyContinue; Write-Output $Error[0].Exception.Message; $Error.Clear()
        does not use Try-Catch and may fail silently.
        Try { Get-Item 'C:\file.txt' } Catch { $Error.Clear(); Write-Output $Error[0].Exception.Message }
        clears errors before reading message, losing the error.
      3. Final Answer:

        Try { Get-Item 'C:\file.txt' } Catch { $msg = $Error[0].Exception.Message; $Error.Clear(); Write-Output $msg } -> Option D
      4. Quick Check:

        Read error before clearing $Error [OK]
      Hint: Always read $Error before calling $Error.Clear() [OK]
      Common Mistakes:
      • Clearing $Error before reading error message
      • Not using Try-Catch for error handling
      • Expecting $Error to update immediately without Try-Catch
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard