Завершающая ошибка в PowerShell, не останавливающая выполнение функции

У меня был следующий фрагмент в функции, которую я пишу, чтобы проверить, доступен ли текущий пользователь для записи в каталог или нет:

  # Write temp file to see if we can
  $checkPermArgs = @{
    Path = $tempFilePath
    ErrorAction = 'SilentlyContinue'
    ErrorVariable = 'wError'
  }
  Write-Verbose "Writing file ${tempFilePath}"
  "$($MyInvocation.MyCommand) check $([DateTime]::Now)" | Out-File @checkPermArgs
  
  # Check for any errors
  if( $wError ) {
    return $false
  } else {
    $true
  }

Насколько я понимаю, IOException должна быть завершающей ошибкой, но по какой-то причине я продолжаю выполнять свою функцию. Если я попытаюсь написать в $tempFilePath и получу IOException, вместо того, чтобы завершить мою функцию, она продолжит работу и вычислит оператор if( $wError ), вернув и отобразив $false в консоли, что приведет к следующему выводу:

Out-File: 
Line |
  34 |  … cation.MyCommand) check $([DateTime]::Now)" | Out-File @checkPermArgs
     |                                                  ~~~~~~~~~~~~~~~~~~~~~~~
     | Access to the path '/path/to/tempFile.txt' is denied.
False

Поскольку цель состоит в том, чтобы по-прежнему обрабатывать ошибку, не отображая ее для конечного пользователя, я понял, что вместо этого оплошал и завернул Out-File в блок try/catch, но мне любопытно, почему завершающая ошибка здесь на самом деле не прерывает выполнение функции.


person Bender the Greatest    schedule 08.10.2020    source источник
comment
На что настроен ваш $erroractionpreference?   -  person Doug Maurer    schedule 08.10.2020
comment
Проверьте этот поток stackoverflow.com/questions/17847276/   -  person Doug Maurer    schedule 08.10.2020
comment
@DougMaurer Продолжайте, но $ErrorActionPrefernce не должен влиять на завершение ошибок: $ErrorActionPreference and the ErrorAction parameter don't affect how PowerShell responds to terminating errors that stop cmdlet processing.   -  person Bender the Greatest    schedule 08.10.2020
comment
Этот поток прекрасно отвечает на то, что происходит, особенно на ответ mklement0. Я проголосовал за то, чтобы закрыть это как дубликат.   -  person Bender the Greatest    schedule 08.10.2020