Property getters should be simple operations that are always safe to call. If exceptions need to be thrown, it is best to convert the property to a
method.
It is valid to throw exceptions from indexed property getters and from property setters, which are not detected by this rule.
Noncompliant code example
public int Foo
{
get
{
throw new Exception(); // Noncompliant
}
}
Compliant solution
public int Foo
{
get
{
return 42;
}
}
Exceptions
No issue is raised when the thrown exception derives from or is of type NotImplementedException
, NotSupportedException
or
InvalidOperationException
.