Condividi tramite


CA2219: Non generare eccezioni in clausole di eccezione

TypeName

DoNotRaiseExceptionsInExceptionClauses

CheckId

CA2219

Category

Microsoft.Usage

Breaking Change

Non sostanziale, sostanziale

Causa

Un'eccezione viene generata da una clausola finally, da una clausola di filtro o da una clausola fault.

Descrizione della regola

Quando un'eccezione viene generata in una clausola di eccezione, complica notevolmente il debug.

Quando un'eccezione viene generata in una clausola finally o in una clausola fault, la nuova eccezione nasconde l'eccezione attiva, se presente. Tale circostanza complica il rilevamento e il debug dell'errore originale.

Quando un'eccezione viene generata in una clausola di filtro, viene intercettata automaticamente dal runtime e il filtro restituisce false. Poiché non è possibile rilevare la differenza tra la restituzione di false e la generazione di un'eccezione da parte di un filtro, il rilevamento e il debug di errori nella logica del filtro risultano più difficili.

Come correggere le violazioni

Per correggere la violazione di questa regola, non generare in modo esplicito un'eccezione da una clausola finally, una clausola di filtro o una clausola fault.

Esclusione di avvisi

Non escludere un avviso per questa regola. Non esistono scenari in cui un'eccezione generata in una clausola di eccezione comporti un vantaggio per il codice in esecuzione.

Regole correlate

CA1065: Non generare eccezioni in posizioni non previste

Vedere anche

Altre risorse

Avvisi di progettazione