CA2219: Non generare eccezioni in clausole di eccezione
Proprietà | valore |
---|---|
ID regola | CA2219 |
Title | Non generare eccezioni in clausole di eccezione |
Categoria | Utilizzo |
Correzione che causa un'interruzione o un'interruzione | Nessuna interruzione, interruzione |
Abilitato per impostazione predefinita in .NET 8 | Come suggerimento |
Causa
Viene generata un'eccezione da una finally
clausola di errore , filtro o errore.
Descrizione regola
Quando viene generata un'eccezione in una clausola di eccezione, aumenta notevolmente la difficoltà di debug.
Quando viene generata un'eccezione in una finally
clausola di errore o , la nuova eccezione nasconde l'eccezione attiva, se presente. In questo modo l'errore originale risulta difficile da rilevare ed eseguire il debug.
Quando viene generata un'eccezione in una clausola di filtro, il runtime intercetta automaticamente l'eccezione e fa in modo che il filtro restituisca false. Non esiste alcun modo per indicare la differenza tra il filtro che valuta su false e un'eccezione generata da un filtro. In questo modo è difficile rilevare ed eseguire il debug degli errori nella logica del filtro.
Come correggere le violazioni
Per correggere questa violazione di questa regola, non generare in modo esplicito un'eccezione da una finally
clausola di errore , filtro o errore.
Quando eliminare gli avvisi
Non eliminare un avviso per questa regola. Non esistono scenari in cui un'eccezione generata in una clausola di eccezione offre un vantaggio per il codice in esecuzione.
Regole correlate
CA1065: Non generare eccezioni in posizioni impreviste