Closed
Description
Description
Hi,
when deserialize data to an entity with an enum attribute and data contains an invalid enum 's value, the serializer throws InvalidArgumentException
which is a logic exception.
- This is not a program logic error so
InvalidArgumentException
is not correct. InvalidArgumentException
is very a common exception so catching it is very difficult. A programmer must test the exception's message if an other logic exception have to be threw and logged.
For example, when deserialize a wrong date format then NotNormalizableValueException
is thrown. For a programmer these situations are equal.
Example
enum MyEnum: int
{
case A = 0;
case B = 1;
}
class MyEntity
{
public MyEnum $myEnum;
}
$entity = $serializer->deserialize('{"myEnum":2}', MyEntity::class, 'json')
Before:
Throws InvalidArgumentException
After:
Throws NotNormalizableValueException