Creazione e generazione di nuove eccezioni


Risposte:


194

Per chiamare un'eccezione specifica come FileNotFoundException, utilizzare questo formato

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

Per lanciare un'eccezione generale utilizzare il comando throw seguito da una stringa.

throw "Error trying to do a task"

Se utilizzato all'interno di una cattura, è possibile fornire ulteriori informazioni su ciò che ha causato l'errore


In C ++, è sconsigliato lanciare stringhe, poiché non si trovano nella gerarchia delle eccezioni. Funziona come su Powershell, ma forse non sono il modo migliore di procedere?
Raúl Salinas-Monteagudo,

3
Se stai usando try..catches nel tuo script e hai più dichiarazioni catch che richiamano eccezioni specifiche, ovviamente, dovresti specificare il tipo di eccezione. Non sono sicuro del motivo per cui viene fatto riferimento al C ++. Nello scripting Powershell, un'istruzione throw generalmente è destinata a uscire dallo script con un messaggio descrittivo. Non sto cercando di scatenare un dibattito, ma Powershell e C ++ sono animali estremamente diversi. L'applicazione delle best practice C ++ o C # a Powershell dovrebbe essere temperata, poiché gli script sono più strettamente associati alla programmazione funzionale.
WiiBopp,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.