Per risolvere questo problema cerca la sintassi errata
- Se Try-Catch non funziona su PowerShell, è necessario verificare la sintassi errata e i valori dell'azione di errore.
- Questa guida spiegherà i diversi modi per risolvere il problema.
XINSTALLARE CLICCANDO SUL FILE DI DOWNLOAD
- Scarica lo strumento di riparazione per PC Restoro che viene fornito con tecnologie brevettate (brevetto disponibile Qui).
- Clic Inizia scansione per trovare i problemi di Windows che potrebbero causare problemi al PC.
- Clic Ripara tutto per risolvere i problemi che interessano la sicurezza e le prestazioni del tuo computer.
- Restoro è stato scaricato da 0 lettori questo mese.
L'istruzione Try-Catch in PowerShell
gestisce gli errori e le eccezioni nel codice. Se Try-Catch non funziona come previsto su PowerShell, può essere frustrante.In questa guida, tratteremo tutti i modi per risolvere il problema insieme alle probabili cause del problema. Iniziamo!
Cosa causa il problema di Try-Catch non funzionante in PowerShell?
Potrebbero esserci vari motivi per cui l'istruzione non funziona su PowerShell. Ecco alcuni dei più comuni:
- Predefinito ErrorAction impostato - Se la ErrorAction è impostato su Continua, allora Try-Catch non funzionerà come previsto.
- Errori di sintassi – Se la sintassi utilizzata non è corretta, la formattazione non è corretta o mancano parole chiave, Try-Catch non funzionerà.
- Cmdlet o comportamento della funzione – Alcune funzioni e cmdlet vengono forniti con il loro comportamento di gestione degli errori, che potrebbe non essere compatibile con Try-Catch.
- Logica errata o uso di variabili – Se c'è un uso improprio di variabili o una logica errata, allora Try-Catch non funzionerà.
Cosa posso fare se Try-Catch non funziona su PowerShell?
1. Controlla la sintassi
- Innanzitutto, devi verificare se hai utilizzato la sintassi corretta per la versione di PowerShell che stai utilizzando.
- Successivamente, verifica di aver posizionato i blocchi Try and Catch nella sequenza corretta.
- La sintassi di base per Try-Catch è menzionata di seguito. Sostituisci # codice da eseguire qui con il codice e # codice di gestione degli errori qui con il codice di gestione degli errori:
Tentativo {
# codice da eseguire qui
}
Presa {
# codice di gestione degli errori qui
}
2. Controlla se stai intercettando un errore specifico
È necessario verificare se si stanno intercettando errori specifici che si desidera gestire e non tutti gli errori. Segui questi passaggi per fare lo stesso:
- premi il
finestre
chiave, tipo PowerShell, e clicca Esegui come amministratore. - Per intercettare un errore, è necessario utilizzare il file $ variabile nel blocco Catch per accedere alle informazioni sull'errore generato. Controlliamo l'esempio dello stesso per capire meglio:
Tentativo {
Get-ChildItem -Percorso C:\DoesNotExist
}
Presa {
if ($_.Eccezione. GetType().Name -eq "DirectoryNotFoundException") {
Write-Output "Directory non trovata."
}
altro {
lancia $_.Exception|
}
}
3. Imposta il valore di ErrorAction
Il valore predefinito per ErrorAction è Continua; tuttavia, affinché Try-Catch funzioni, è necessario impostare il valore ErrorAction su Stop. Per fare ciò, attenersi alla seguente procedura:
- Aprire PowerShell come amministratore.
- È necessario utilizzare il cmdlet Set-StrictMode o il parametro ErrorAction sui singoli cmdlet. Per capirlo meglio, vediamo un esempio:
Tentativo {
Get-ChildItem -Path C:\DoesNotExist -ErrorAction Stop
}
Presa {
Write-Output $_.Exception. Messaggio
}
- Ecco come recuperare la tua chiave BitLocker da OneDrive
- Come utilizzare Phone Link per iPhone su Windows 11
- DaVinci Resolve Utilizzo elevato della CPU: come ridurlo
4. Utilizzare il tipo di eccezione corretto
È importante utilizzare le eccezioni corrette quando si utilizza Try-Catch, in quanto può gestire solo le eccezioni di System. Tipo di eccezione. Se hai utilizzato non-System. Errori di eccezione, quindi Try-Catch non funzionerà.
Per quanto riguarda non System. Eccezione, è necessario utilizzare il meccanismo di gestione degli errori del framework NET o rilevare l'errore.
5. Evitare la terminazione dello script
Se il tuo script viene terminato prima di raggiungere il blocco Catch, Try-Cach non avrà la possibilità di gestire l'errore. Per evitare la chiusura dello script, attenersi alla seguente procedura:
- Lancio PowerShell con diritti di amministratore.
- Devi usare il Continua dichiarazione dopo il Presa bloccare. Capiamolo con un esempio:
Tentativo {
Get-ChildItem -Percorso C:\DoesNotExist
}
Presa {
Write-Output $_.Exception. Messaggio
Continua
}
6. Usa il Try-Catch-Finally
Se l'istruzione Try-Catch continua a non funzionare, è possibile utilizzare invece il costrutto Try-Catch-Finally. Ciò garantisce che il codice venga eseguito fino al completamento, anche se viene generata un'eccezione.
- Aprire PowerShell come amministratore.
- Digita il comando con Try-Catch-Finalmente. Ecco un esempio per capire meglio lo script:
Tentativo {
# Il tuo codice qui
}
Cattura [Sistema. Eccezione] {
# Codice di gestione delle eccezioni qui
}
Finalmente {
# Codice di pulizia qui
}
Quindi, questi sono i modi in cui puoi risolvere il problema di Try Catch non funzionante su PowerShell. Se hai domande relative a Try-Catch, menzionale nella sezione commenti qui sotto. Saremo felici di aiutarti!
Se vuoi sapere come impedire la chiusura di PowerShell dopo aver eseguito uno script, puoi leggere questo.
Hai ancora problemi? Risolvili con questo strumento:
SPONSORIZZATO
Se i suggerimenti di cui sopra non hanno risolto il tuo problema, il tuo PC potrebbe riscontrare problemi Windows più profondi. Noi raccomandiamo scaricando questo strumento di riparazione del PC (valutato Ottimo su TrustPilot.com) per affrontarli facilmente. Dopo l'installazione, è sufficiente fare clic su Inizia scansione pulsante e quindi premere su Ripara tutto.