Что правильный путь состоит в том, чтобы сделать обработку ошибок в PowerShell?

Это вернет прямоугольник ширины или высоты 0, если две точки находятся на линии

float x,y,h,w;
if (p1.x > p2.x) {
    x = p2.x;
    w = p1.x-p2.x;
} else {
    x = p1.x;
    w = p2.x-p1.x;
}
if (p1.y > p2.y) {
    y = p2.y;
    h = p1.y-p2.y;
} else {
    y = p1.y;
    h = p2.y-p1.y;
}

CGRect newRect = CGRectMake(x,y,w,h);
7
задан scobi 19 June 2009 в 17:50
поделиться

2 ответа

Для отдельных командлетов существует параметр -erroraction. Возможные значения: SilentlyContinue, Stop, Continue или Inquire. Вы также можете указать глобальную переменную с именем $ errorpreference для любой из этих опций.

В V1 вы можете использовать ключевое слово trap. Существует довольно хорошая, краткая статья , в которой описаны ключевые различия между ловушками и синтаксисом try / catch / finally, который был добавлен в версии 2.

Вот быстрый пример использования операторов trap, первый - для определенного типа исключения, а второй - это общая ловушка для перехвата всех ошибок

trap {"Other terminating error trapped" }
trap [System.Management.Automation.CommandNotFoundException] 
      {"Command error trapped"}
1/$null
9
ответ дан 7 December 2019 в 03:19
поделиться

Я считаю, что Posh - это все .Net. Большинство концепций, которые работают в .Net, должны работать в Posh.

Для обработки ошибок вы можете использовать Try..catch. Также возможно «перехватить» ошибки и указать свой собственный набор инструкций для выполнения при возникновении ошибки.

Я настоятельно рекомендую встроенную справку:

Get-Help about_Errors
Get-Help about_Trap
0
ответ дан 7 December 2019 в 03:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: