다음을 통해 공유


예외는 public이어야 합니다.

업데이트: 2007년 11월

TypeName

ExceptionsShouldBePublic

CheckId

CA1064

범주

Microsoft.Design

변경 수준

주요 변경 아님

원인

System.Exception, System.SystemException 또는 System.ApplicationException에서 직접 public이 아닌 예외가 파생됩니다.

규칙 설명

내부 예외는 내부 범위 내에만 표시됩니다. 예외가 내부 범위 밖에 놓이게 되면 예외를 catch하는 데 기본 예외만 사용할 수 있습니다. T:System.Exception, T:System.SystemException, T:System.ApplicationException에서 내부 예외가 상속되는 경우 외부 코드에는 예외를 사용하여 수행할 수 있는 내용에 대한 충분한 정보가 없게 됩니다.

그러나 나중에 내부 예외의 기본으로 사용되는 public 예외가 코드에 있는 경우에는 이 코드에서 이후에 기본 예외로 인텔리전트한 작업을 수행할 수 있을 것으로 간주합니다. public 예외에는 T:System.Exception, T:System.SystemException 또는 T:System.ApplicationException에서 제공하는 것보다 자세한 정보가 있습니다.

위반 문제를 해결하는 방법

예외를 public 예외로 만들거나, System.Exception, System.SystemException 또는 System.ApplicationException이 아닌 public 예외에서 내부 예외를 파생시킵니다.

경고를 표시하지 않는 경우

모든 경우에 private 예외를 내부 범위 내에서 catch하게 될 경우 이 규칙에서 메시지를 표시하지 말아야 합니다.

예제

다음은 규칙을 위반하는 세 가지 예입니다.