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 finallyclausola 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 finallyclausola 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.

CA1065: Non generare eccezioni in posizioni impreviste

Vedi anche