在php try catch中设置变量是否正确?

在php try catch中设置变量是否正确?,php,datetime,try-catch,standards,Php,Datetime,Try Catch,Standards,我知道我可以。我知道这很有效。但是,这是正确的吗?我认为这就像把一个div放在一个跨度内:你可以,但有人会追捕你,找到你,并摧毁你 // $value comes from $_POST no validation try { $value = new DateTime($value); } catch(Exception $e) { $value = new DateTime(); } 如果这样做可能导致抛出异常,那么这是非常好的。否则,无论执行什么操作,都会增加不必要的开销

我知道我可以。我知道这很有效。但是,这是正确的吗?我认为这就像把一个div放在一个跨度内:你可以,但有人会追捕你,找到你,并摧毁你

// $value comes from $_POST no validation
try {
    $value = new DateTime($value);
} catch(Exception $e) {
    $value = new DateTime();
}

如果这样做可能导致抛出异常,那么这是非常好的。否则,无论执行什么操作,都会增加不必要的开销


在您的情况下,如果
$value
不是有效值,将引发异常。因此,您的try/catch对于捕获异常并做出相应的反应是必要的,您可以这样做。

请您在做出决定后跳过真正的代码好吗?它本身是正确的,但是如果做的是正确的事情,则取决于具体情况。这与实际代码之间没有太大区别<代码>$value来自未经验证的
$\u POST
,因此它可以是任何东西。在
try catch
之后,我正在修改一个实体并将其持久化到数据库(条令)