In powershell not all errors are terminating errors which are required to trigger the catch block. To make all errors terminating, you can either set
-ErrorAction Stop on individual commands or for the whole session set
$ErrorActionPreference = 'Stop' prior to try/catch block.
CLICK HERE to find out more related problems solutions.