Вывод отладочной информации

PowerShell:
Вывод отладочной информации

Как это сделать:

Давайте держать всё просто и сделаем что-нибудь конкретное. Мы покажем значение переменной, как продвигается цикл, и зафиксируем злосчастную ошибку, которая может возникнуть.

# Показываем значение переменной
$name = "Guru PowerShell"
Write-Host "Значение переменной name: $name"

# Отслеживаем прогресс цикла
for ($i = 0; $i -lt 5; $i++) {
    Write-Host "Мы находимся на итерации: $i"
}

# Захват и печать ошибки
try {
    Get-Item "C:\NonExistent\File.txt" -ErrorAction Stop
} catch {
    Write-Host "Упс: $_"
}

Пример вывода:

Значение переменной name: Guru PowerShell
Мы находимся на итерации: 0
Мы находимся на итерации: 1
Мы находимся на итерации: 2
Мы находимся на итерации: 3
Мы находимся на итерации: 4
Упс: Не удается найти путь 'C:\NonExistent\File.txt', потому что он не существует.

Погружение в детали

В древние времена компьютирования отладка часто означала буквально физических насекомых, мешающих работе оборудования. С тех пор мы проделали долгий путь, теперь используя термин “баг” для проблем с кодом и “отладка” для их исправления.

Командлет Write-Host в PowerShell — это ваш товарищ по печати на экран, что неплохо для базовых скриптов. Но есть круче способы это делать: Write-Verbose, Write-Debug, Write-Output и Write-Information представляют собой разные вкусы вывода в зависимости от конкретных случаев использования. Они дают контролируемую многословность, что замечательно, когда вам нужно замутить ваш скрипт или записать что-то в лог без заспамления консоли.

Когда дело доходит до реализации, обработка ошибок в PowerShell особенно стильная. Вы можете ловить различные типы исключений с помощью блоков try, catch, finally и решать, как реагировать. Это словно выбрать своё приключение для управления ошибками.

Смотрите также