2012-01-29 3 views
0

재산 취득자로부터 예외를 던지는 것은 적절하지 않다고 들었습니다.이 이유의 이유를 이해합니다.Property Getters로부터 NotSupportedException을 Throw

public interface IFacade 
{ 
    int SomeProperty { get; set; } 
} 

지금 기본적으로 해당 플랫폼을 XY 지원 SomeProperty을 상상하지만, 해당 플랫폼 Z은하지 않습니다 : 여러 다른 플랫폼에 적응하는 의미 외관을 작성하는 상상 그러나, 다음과 같은 상황이 저를 당혹 게한다. 을 플랫폼 Z의 어댑터에있는 getter에서 던져서는 안되며, 해당 플랫폼의 특별한 경우에는 기능이 지원되지 않는다고 사용자에게 알리는 것이 옳은가요?

+1

괜찮습니다. 이것이 인터페이스라는 것을 감안할 때, 프로그래머에게 먼저 이야기하고 싶을 것이다. –

답변

1

이 동작이 문서화되어있는 한 아무 문제가 없습니다. 예외를 처리 할 필요성이 염려되는 경우 SupportsSomeProperty 속성을 도입 할 수 있습니다. 그러나 이것은 인터페이스를 날려 버릴 수 있습니다.

1

예외가 잡힐 수 없다는 것을 알고 있으므로 (수행 할 수있는 것은 아무것도 없으며 플랫폼이 지원되지 않습니다!) 잡히면 예외 처리됩니다. 프로그램을 종료하고 현재 플랫폼이 지원되지 않는다는 오류 메시지가 표시됩니다.

예외는 일반적으로 발견되어 처리되거나 오류가 발생하면 예기치 않게 throw되는 곳에서 사용됩니다. 프로그램이 플랫폼 z에서 실행 중일 때 오류가 발생하면 계속할 수 없으면 프로그램을 종료하십시오.