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.