Supports method should return false if key isn't found

Javadoc from this method says the if the key is not found, will return false. But, at this time, the method throws an exception if key is not found.

I think that this change is welcome, because there are no reason to throws an exception.

This pull request will important to #619.
you can use `if (has(feature))`