Bird
Raised Fist0
PowerShellscripting~5 mins

Try-Catch-Finally in PowerShell - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of the try block in PowerShell?
The try block contains code that might cause an error. It lets you test code safely and handle errors if they happen.
Click to reveal answer
beginner
What does the catch block do in a try-catch-finally structure?
The catch block runs only if an error happens inside the try block. It lets you respond to or fix the error.
Click to reveal answer
intermediate
Explain the role of the finally block in PowerShell's try-catch-finally.
The finally block runs after try and catch, no matter what. It is used to clean up or finish tasks like closing files.
Click to reveal answer
intermediate
How do you catch specific types of errors in PowerShell?
You can specify the error type in the catch block, like catch [System.IO.IOException], to handle only that error type.
Click to reveal answer
advanced
What happens if an error occurs in the finally block?
If an error happens in finally, it can stop the script or cause another error. So, keep finally code simple and safe.
Click to reveal answer
Which block runs only if an error occurs in the try block?
Acatch
Bfinally
Ctry
Delse
What is the main purpose of the finally block?
ATo start the script
BTo run code only if no errors occur
CTo catch specific errors
DTo run code regardless of errors
How do you specify which error type to catch in PowerShell?
AUsing <code>finally [ErrorType]</code>
BUsing <code>catch [ErrorType]</code>
CUsing <code>try [ErrorType]</code>
DUsing <code>throw [ErrorType]</code>
If no error occurs in try, which blocks run?
A<code>try</code> and <code>finally</code>
BOnly <code>try</code>
C<code>try</code> and <code>catch</code>
D<code>catch</code> and <code>finally</code>
What is a good practice for code inside finally?
AInclude complex logic
BAvoid any code
CKeep it simple and safe
DOnly throw errors
Describe how try-catch-finally works in PowerShell and why each block is important.
Think about how you handle problems and cleanup in daily tasks.
You got /3 concepts.
    Explain how you can catch only specific error types in PowerShell's try-catch.
    Imagine sorting mail by type to handle it better.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of the try block in PowerShell's Try-Catch-Finally structure?
      easy
      A. To always run code regardless of errors
      B. To handle errors after they occur
      C. To run code only if no errors happen
      D. To run code that might cause an error

      Solution

      1. Step 1: Understand the role of try

        The try block contains code that might cause an error during execution.
      2. Step 2: Differentiate from catch and finally

        catch handles errors after they happen, and finally runs code always, but try is where risky code runs.
      3. Final Answer:

        To run code that might cause an error -> Option D
      4. Quick Check:

        try runs risky code = A [OK]
      Hint: Try block runs code that may fail [OK]
      Common Mistakes:
      • Confusing try with catch
      • Thinking finally runs only on errors
      • Believing try runs only if no errors
      2. Which of the following is the correct syntax to catch an error in PowerShell?
      easy
      A. catch { Write-Host 'Error occurred' }
      B. catch() { Write-Host 'Error occurred' }
      C. catch: { Write-Host 'Error occurred' }
      D. catch[] { Write-Host 'Error occurred' }

      Solution

      1. Step 1: Recall PowerShell catch syntax

        In PowerShell, catch is followed by a script block in curly braces without parentheses or other symbols.
      2. Step 2: Identify correct syntax

        catch { Write-Host 'Error occurred' } uses catch { ... } which is correct; others add invalid symbols like parentheses or colons.
      3. Final Answer:

        catch { Write-Host 'Error occurred' } -> Option A
      4. Quick Check:

        Correct catch syntax uses braces only = A [OK]
      Hint: Catch uses braces {} without parentheses [OK]
      Common Mistakes:
      • Adding parentheses after catch
      • Using colon or brackets with catch
      • Missing curly braces around catch code
      3. What will be the output of this PowerShell script?
      try {
        1 / 0
        Write-Output 'Success'
      } catch {
        Write-Output 'Error caught'
      } finally {
        Write-Output 'Always runs'
      }
      medium
      A. Error caught Always runs
      B. Success
      C. Success Always runs
      D. Error caught

      Solution

      1. Step 1: Analyze the try block

        The code attempts to divide 1 by 0, which causes a runtime error, so the line Write-Output 'Success' is skipped.
      2. Step 2: Check catch and finally behavior

        The catch block runs and outputs 'Error caught'. The finally block always runs and outputs 'Always runs'.
      3. Final Answer:

        Error caught Always runs -> Option A
      4. Quick Check:

        Error triggers catch, finally always runs = C [OK]
      Hint: Error skips try rest, runs catch then finally [OK]
      Common Mistakes:
      • Assuming 'Success' prints despite error
      • Ignoring finally block output
      • Thinking catch runs only sometimes
      4. Identify the error in this PowerShell script:
      try {
        Write-Output 'Start'
      } catch {
        Write-Output 'Error'
      } finaly {
        Write-Output 'Done'
      }
      medium
      A. Missing parentheses after catch
      B. No error in the script
      C. Misspelled 'finally' keyword
      D. Missing semicolon after Write-Output

      Solution

      1. Step 1: Check spelling of keywords

        The script uses finaly instead of the correct finally keyword.
      2. Step 2: Verify other syntax elements

        Catch does not require parentheses, and semicolons are optional in PowerShell; so these are not errors.
      3. Final Answer:

        Misspelled 'finally' keyword -> Option C
      4. Quick Check:

        Keyword spelling matters: 'finally' correct = B [OK]
      Hint: Check spelling of 'finally' carefully [OK]
      Common Mistakes:
      • Thinking catch needs parentheses
      • Expecting semicolons after commands
      • Missing typo in finally keyword
      5. You want to ensure a log file is always closed after writing, even if an error occurs during writing. Which Try-Catch-Finally structure correctly achieves this?
      hard
      A. try { Write-Output 'Write log' } catch { Close-LogFile } finally { Write-Output 'Error' }
      B. try { Write-Output 'Write log' } catch { Write-Output 'Error' } finally { Close-LogFile }
      C. catch { Write-Output 'Error' } try { Write-Output 'Write log' } finally { Close-LogFile }
      D. try { Write-Output 'Write log' } finally { Close-LogFile } catch { Write-Output 'Error' }

      Solution

      1. Step 1: Understand Try-Catch-Finally order

        The correct order is try, then catch, then finally. The finally block always runs last.
      2. Step 2: Identify correct usage for closing log file

        try { Write-Output 'Write log' } catch { Write-Output 'Error' } finally { Close-LogFile } correctly places Close-LogFile in finally to ensure it runs always, even if an error occurs.
      3. Final Answer:

        try { Write-Output 'Write log' } catch { Write-Output 'Error' } finally { Close-LogFile } -> Option B
      4. Quick Check:

        Try-Catch-Finally order with cleanup in finally = D [OK]
      Hint: Put cleanup code in finally block [OK]
      Common Mistakes:
      • Placing finally before catch
      • Putting cleanup in catch only
      • Misordering Try-Catch-Finally blocks
      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