Поделиться через


CA2219: не создавайте исключения в предложениях исключений

TypeName

DoNotRaiseExceptionsInExceptionClauses

CheckId

CA2219

Категория

Microsoft.Usage

Критическое изменение

Не критическое, критическое

Причина

Исключение создается в предложении finally, filter или fault.

Описание правила

Исключения, создаваемые в предложениях исключений, значительно затрудняют отладку.

Когда исключение создается в предложении finally или fault, новое исключение скрывает активное исключение, если оно есть. Из-за этого становится трудно обнаружить и отладить изначальную ошибку.

Когда исключение возникает в предложении filter, среда выполнения скрытно перехватывает исключение и фильтр возвращает значение false. Невозможно различить, когда фильтр имеет значение false, а когда фильтр создает исключение. Из-за этого становится трудно отлаживать ошибки в логике фильтра.

Устранение нарушений

Чтобы устранить нарушение этого правила, не следует явным образом создавать исключения в предложениях finally, filter или fault.

Отключение предупреждений

Не следует подавлять вывод предупреждений для этого правила. Не существует скриптов, в которых исключение, созданное в предложении исключения, целесообразно в выполняемом коде.

Связанные правила

CA1065: не вызывайте исключения в непредвиденных местах

См. также

Другие ресурсы

Предупреждения конструктора