¿Cuándo debo usar Write-Error vs. Throw? Errores de terminación versus no terminación

Mirando un script Get-WebFile en PoshCode,http: //poshcode.org/322, Noté este artilugio extraño para mí:

$URL_Format_Error = [string]"..."
Write-Error $URL_Format_Error
return

¿Cuál es la razón de esto en lugar de lo siguiente?

$URL_Format_Error = [string]"..."
Throw $URL_Format_Error

O mejor

$URL_Format_Error = New-Object System.FormatException "..."
Throw $URL_Format_Error

Según tengo entendido, debe usar Write-Error para errores que no terminan, y Throw para errores de terminación, por lo que me parece que no debe usar Write-Error seguido de Return. ¿Hay una diferencia

Respuestas a la pregunta(12)

Su respuesta a la pregunta