【发布时间】:2015-11-28 08:17:03
【问题描述】:
我正在使用 JMS 序列化程序,并且有两个字段,签入和签出作为具有特定格式的日期时间,如下所示:
/**
* @var \DateTime
* @Type("DateTime<'Y-m-d'>")
* @Assert\Date()
*/
protected $checkin;
/**
* @var \DateTime
* @Type("DateTime<'Y-m-d'>")
* @Assert\Date()
*/
protected $checkout;
现在,我想抛出一个 400 HTTP 状态代码,例如,如果有人发送了无效格式(例如空字符串)。
问题是 JMS Serializer 在无法从 DateHandler 中的格式创建日期时间时抛出 RuntimeException,如下所示:
if (false === $datetime) {
throw new RuntimeException(sprintf('Invalid datetime "%s", expected format %s.', $data, $format));
}
此异常提供 500 HTTP 状态代码。
还检查了在配置中添加异常代码 400 的可能性,例如,但问题是 JMS 在广泛的不同情况下抛出这种类型的异常。
提前致谢!
【问题讨论】:
标签: symfony jmsserializerbundle