I have heard it is inappropriate to throw exceptions from property getters, and I understand the reasons behind this rationale. However, the following situation is puzzling me: Imagine you are writing a facade meant to adapt to several different platforms:
public interface IFacade
{
int SomeProperty { get; set; }
}
Now imagine that platform X
and Y
support SomeProperty
natively, but that platform Z
does not. Shouldn't throwing NotSupportedException
from the getter in platform Z
's adapter be the right way to tell users that the functionality is not supported in that platform's particular case?