Revert "Revert "Get rid of ClaimException and use non-exception logic (remove this if useless)""

This reverts commit 81b31e3cece303d711b2df9ddbfabd1996ae1b52.
Revert "Revert "Get rid of PolymerOutOfRange for the same reason""

This reverts commit 964b7d82bd85d46832a7bc2807d41d18be92f31b.