Condividi tramite


Le eccezioni devono essere pubbliche

Aggiornamento: novembre 2007

TypeName

ExceptionsShouldBePublic

CheckId

CA1064

Categoria

Microsoft.Design

Breaking Change

Non sostanziale

Causa

Un'eccezione non pubblica deriva direttamente da System.Exception, System.SystemException o System.ApplicationException.

Descrizione della regola

Un'eccezione interna è visibile solo nel relativo ambito interno. Se l'eccezione si verifica al di fuori dell'ambito interno, può essere rilevata solo tramite l'eccezione di base. Se l'eccezione interna è ereditata da T:System.Exception, T:System.SystemException o T:System.ApplicationException, il codice esterno non disporrà di informazioni sufficienti per la corretta gestione dell'eccezione.

Se invece nel codice è presente un'eccezione pubblica utilizzata in seguito come base per un'eccezione interna, è ragionevole supporre che il codice più esterno sarà in grado di gestire in modo più opportuno l'eccezione di base. All'eccezione pubblica saranno associate maggiori informazioni rispetto a quelle fornite da T:System.Exception, T:System.SystemException o T:System.ApplicationException.

Correzione di violazioni

Rendere pubblica l'eccezione o derivare l'eccezione interna da un'eccezione pubblica diversa da System.Exception, System.SystemException o System.ApplicationException.

Esclusione di avvisi

Escludere un messaggio da questa regola se si è certi che, in qualsiasi caso, l'eccezione privata sarà rilevata nel relativo ambito interno.

Esempio

Di seguito sono riportati tre esempi di violazione della regola.