Criando e lançando nova exceção


Respostas:


194

Para chamar uma exceção específica, como FileNotFoundException, use este formato

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

Para lançar uma exceção geral, use o comando throw seguido de uma string.

throw "Error trying to do a task"

Quando usado dentro de uma captura, você pode fornecer informações adicionais sobre o que acionou o erro


No C ++, é desencorajado o lançamento de strings, pois elas não estão na hierarquia de exceções. Simplesmente funciona, como no PowerShell, mas talvez eles não sejam o melhor caminho a percorrer?
Raúl Salinas-Monteagudo

3
Se você estiver usando try..catches em seu script e tiver várias instruções catch chamando exceções específicas, é claro que você desejará especificar o tipo de exceção. Não sei por que é feita referência ao C ++. Nos scripts do Powershell, uma instrução throw geralmente se destina a sair do script com uma mensagem descritiva. Não pretendo desencadear um debate, mas o Powershell e o C ++ são animais extremamente diferentes. A aplicação das melhores práticas de C ++ ou C # ao Powershell deve ser moderada, pois os scripts estão mais associados à programação funcional.
WiiBopp 4/06/19
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.