Introduction
Errors happen when something goes wrong in a script. Knowing the difference between terminating and non-terminating errors helps you decide how your script should react.
Try {
# Code that might cause an error
} Catch {
# Code to handle terminating errors
}
# Non-terminating errors usually just show a warning and let the script continueGet-Item 'C:\no_such_file.txt'Remove-Item 'C:\no_such_file.txt' -ErrorAction StopTry {
Remove-Item 'C:\no_such_file.txt' -ErrorAction Stop
} Catch {
Write-Host 'Caught a terminating error!'
}Write-Host 'Start script' # Non-terminating error example Get-Item 'C:\no_such_file.txt' Write-Host 'After non-terminating error' # Terminating error example with Try/Catch Try { Remove-Item 'C:\no_such_file.txt' -ErrorAction Stop } Catch { Write-Host 'Caught a terminating error!' } Write-Host 'End script'
-ErrorAction parameter controls how errors behave; Stop makes non-terminating errors act as terminating.-ErrorAction Stop forces the error to stop the script, unlike Continue or SilentlyContinue which allow continuation.-ErrorAction Stop -> Option A-ErrorAction Stop makes errors terminate [OK]Get-Item 'C:\nonexistentfile.txt' -ErrorAction Continue Write-Output 'Script continues'
-ErrorAction Continue, non-terminating errors show error messages but do not stop the script.Try {
Get-Item 'C:\nonexistentfile.txt' -ErrorAction Stop
} Catch {
Write-Output 'Caught error'
}
Write-Output 'Script continues'-ErrorAction Stop makes the error terminating, so Try/Catch can catch it.-ErrorAction Stop.Get-Item with -ErrorAction Stop inside a Try/Catch block to handle errors. -> Option APass the test and this pattern moves unknown