Я написал об этом в моей колонке TechNet Magazine (technetmagazine.com, если вам интересно).
Во-первых, PowerShell v2 будет иметь стандартный Try ... Catch, и это здорово.
Существующая оболочка (v1) имеет поддержку конструкций trap {}. Они должны быть определены до возникновения исключения. Кроме того, большинству командлетов требуется параметр -EA «STOP», чтобы они могли генерировать исключение, которое можно перехватить. Ловушки могут быть определены в любой области и будут «пузыриться» до тех пор, пока они не попадут в ловушку или пока они не достигнут глобальной (оболочки) области.
В конце прерывания выполните «Продолжить», чтобы вернуться к следующей строке кода в той же области, что и прерывание, или выполните «Разрыв», чтобы оставить текущую область и выбросить исключение.