Есть ли способ войти в отладчик PowerShell в ответ на ошибку? Параметр ErrorAction
имеет несколько значений, но я не вижу ничего подобного Debug
. Я хотел бы открыть отладчик, как если бы он установил точку останова, но только когда произошла ошибка (от, скажем, Write-Error
).
Edit Я должен немного уточнить: я в первую очередь разработчик С# и несколько новичок в PowerShell, я ожидаю, что поведение похоже на то, что отладчик Visual Studio дает вам для "необработанных исключений". Похоже, что для команд PowerShell чаще всего возникают исключения, в то время как пользовательские скрипты, как правило, используют Write-Error. Я не думаю, что мне особенно важно различать их, но я бы хотел обработать оба.
Тревор Салливан отвечает ниже, что вы можете использовать Set-PSBreakpoint -Command Write-Error -Action { break; };
, который, как представляется, хорошо работает, чтобы поймать эти случаи. Хотя, я нахожу, что во многих случаях это на самом деле команда, бросающая исключение, которое я хотел бы разбить. Ответ Roman Kuzmin, похоже, работает, если вы установили $ErrorActionPreference = "stop"
, однако у меня есть проблема, что я не могу пройти через программу, она, кажется, выходит из этого места и заканчивает script. Если $ErrorActionPreference = "continue"
, это не работает для меня. Ловушки в целом, похоже, имеют аналогичную проблему, из-за которой они вырываются из любых вложенных областей, что нежелательно.