Nota
L'accés a aquesta pàgina requereix autorització. Podeu provar d'iniciar la sessió o de canviar els directoris.
L'accés a aquesta pàgina requereix autorització. Podeu provar de canviar els directoris.
| Propiedad | Valor |
|---|---|
| Identificador de la regla | CA2219 |
| Título | No producir excepciones en cláusulas de excepción |
| Categoría | Uso |
| La corrección interrumpe o no interrumpe | Continuo, Interrumpido |
| Habilitado de forma predeterminada en .NET 10 | Como sugerencia |
| Idiomas aplicables | C# y Visual Basic |
Causa
Se lanza una excepción desde un finally, filtro o cláusula de error.
Descripción de la regla
Cuando se genera una excepción en una cláusula de excepción, aumenta considerablemente la dificultad de la depuración.
Cuando se genera una excepción en una cláusula de error o finally, la nueva excepción oculta la excepción activa, si está presente. Esto hace que el error original sea difícil de detectar y depurar.
Cuando se genera una excepción en una cláusula de filtro, el entorno de ejecución detecta la excepción de forma silenciosa y hace que el filtro se evalúe como falso. No hay ninguna manera de identificar la diferencia entre el filtro que se evalúa como falso y una excepción que se lanza desde un filtro. Esto hace que sea difícil detectar y depurar errores en la lógica del filtro.
Cómo corregir infracciones
Para corregir esta infracción de esta regla, no genere explícitamente una excepción a partir de una cláusula de error, filtro o finally.
Example
try
{
// ...
}
finally
{
// This code violates the rule.
throw new Exception();
}
Cuándo suprimir las advertencias
No suprima las advertencias para esta regla. No hay ningún escenario en el que una excepción generada en una cláusula de excepción proporcione una ventaja para el código de ejecución.
Reglas relacionadas
CA1065: No producir excepciones en ubicaciones inesperadas