CA2219: не создавайте исключения в предложениях исключений
TypeName |
DoNotRaiseExceptionsInExceptionClauses |
CheckId |
CA2219 |
Категория |
Microsoft.Usage |
Критическое изменение |
Не критическое, критическое |
Причина
Исключение создается в предложении finally, filter или fault.
Описание правила
Исключения, создаваемые в предложениях исключений, значительно затрудняют отладку.
Когда исключение создается в предложении finally или fault, новое исключение скрывает активное исключение, если оно есть. Из-за этого становится трудно обнаружить и отладить изначальную ошибку.
Когда исключение возникает в предложении filter, среда выполнения скрытно перехватывает исключение и фильтр возвращает значение false. Невозможно различить, когда фильтр имеет значение false, а когда фильтр создает исключение. Из-за этого становится трудно отлаживать ошибки в логике фильтра.
Устранение нарушений
Чтобы устранить нарушение этого правила, не следует явным образом создавать исключения в предложениях finally, filter или fault.
Отключение предупреждений
Не следует подавлять вывод предупреждений для этого правила. Не существует скриптов, в которых исключение, созданное в предложении исключения, целесообразно в выполняемом коде.
Связанные правила
CA1065: не вызывайте исключения в непредвиденных местах