CA2219: No producir excepciones en cláusulas de excepciónCA2219: Do not raise exceptions in exception clauses

TypeNameTypeName DoNotRaiseExceptionsInExceptionClausesDoNotRaiseExceptionsInExceptionClauses
Identificador de comprobaciónCheckId CA2219CA2219
CategoríaCategory Microsoft.UsageMicrosoft.Usage
Cambio problemáticoBreaking Change No problemático, problemáticoNon Breaking, Breaking

MotivoCause

Se produce una excepción desde una finally, filtro o la cláusula fault.An exception is thrown from a finally, filter, or fault clause.

Descripción de la reglaRule Description

Cuando se produce una excepción en una cláusula de excepción, aumenta considerablemente la dificultad de depuración.When an exception is raised in an exception clause, it greatly increases the difficulty of debugging.

Cuando se genera una excepción en un finally o la cláusula fault, la nueva excepción oculta la excepción activa, si está presente.When an exception is raised in a finally or fault clause, the new exception hides the active exception, if present. Esto hace que el error original sea difícil de detectar y depurar.This makes the original error hard to detect and debug.

Cuando se produce una excepción en una cláusula de filtro, el tiempo de ejecución en modo silencioso detecta la excepción y hace que el filtro se evalúe como false.When an exception is raised in a filter clause, the runtime silently catches the exception, and causes the filter to evaluate to false. No hay ninguna manera de indicar la diferencia entre el filtro que se evalúa como false y una excepción que se inicia desde un filtro.There is no way to tell the difference between the filter evaluating to false and an exception being throw from a filter. Esto hace más difícil de detectar y depurar los errores en la lógica del filtro.This makes it hard to detect and debug errors in the filter's logic.

Cómo corregir infraccionesHow to Fix Violations

Para corregir esta infracción de esta regla, no produzca explícitamente una excepción desde una finally, filtro o la cláusula fault.To fix this violation of this rule, do not explicitly raise an exception from a finally, filter, or fault clause.

Cuándo suprimir advertenciasWhen to Suppress Warnings

No suprima las advertencias de esta regla.Do not suppress a warning for this rule. No hay ningún escenario en el que una excepción producida en una cláusula de excepción proporcione alguna ventaja en el código en ejecución.There are no scenarios under which an exception raised in an exception clause provides a benefit to the executing code.

CA1065: No producir excepciones en ubicaciones inesperadasCA1065: Do not raise exceptions in unexpected locations

Vea tambiénSee Also

Advertencias de diseñoDesign Warnings