CA2219: exception 절에서 예외를 발생시키지 마십시오.
TypeName |
DoNotRaiseExceptionsInExceptionClauses |
CheckId |
CA2219 |
범주 |
Microsoft.Usage |
변경 수준 |
주요 변경 아님, 주요 변경 |
원인
finally, filter 또는 fault 절에서 예외가 throw됩니다.
규칙 설명
exception 절에서 예외가 발생하면 디버깅이 매우 어려워집니다.
finally 또는 fault 절에서 예외가 발생하는 경우 새 예외가 있으면 새 예외가 활성 예외를 숨깁니다.따라서 원래 오류를 감지하고 디버깅하기 어렵게 됩니다.
filter 절에서 예외가 발생하면 런타임에서 예외를 자동으로 catch하여 필터 결과가 false로 계산됩니다.false로 계산되는 필터와 필터에서 throw하는 예외 간의 차이를 구분할 방법은 없습니다.이 경우 필터 논리의 오류를 발견하여 디버깅하기가 어렵습니다.
위반 문제를 해결하는 방법
이 규칙 위반 문제를 해결하려면 finally, filter 또는 fault 절에서 예외를 명시적으로 발생시키지 않도록 하십시오.
경고를 표시하지 않는 경우
이 규칙에서는 경고를 표시해야 합니다.exception 절에서 예외를 발생시키는 시나리오 중에서 코드 실행에 도움이 되는 경우는 없습니다.
관련 규칙
CA1065: 예기치 않은 위치에서 예외를 발생시키지 마십시오.