Creando y lanzando una nueva excepción

Respuestas:

194

Para llamar a una excepción específica, como FileNotFoundException, use este formato

if (-not (Test-Path $file)) 
{
    throw [System.IO.FileNotFoundException] "$file not found."
}

Para lanzar una excepción general, use el comando throw seguido de una cadena.

throw "Error trying to do a task"

Cuando se usa dentro de una captura, puede proporcionar información adicional sobre lo que provocó el error

WiiBopp
fuente
En C ++, no se recomienda lanzar cadenas, ya que no están en la jerarquía de excepción. Simplemente funciona, como en Powershell, pero ¿tal vez no son la mejor manera de hacerlo?
Raúl Salinas-Monteagudo
3
Si está usando try..catches en su secuencia de comandos y tiene varias declaraciones catch que invocan excepciones específicas, entonces, por supuesto, desearía especificar el tipo de excepción. No estoy seguro de por qué se hace referencia a C ++. En los scripts de Powershell, una declaración de lanzamiento generalmente tiene la intención de salir del script con un mensaje descriptivo. No estoy buscando provocar un debate, pero Powershell y C ++ son animales extremadamente diferentes. La aplicación de las mejores prácticas de C ++ o C # a Powershell debe ser moderada, ya que las secuencias de comandos están más estrechamente asociadas con la programación funcional.
WiiBopp