有没有人知道为什么此函数在传递无效日期(例如时间戳)时仍然会抛出错误,尽管try-catch
?DateTime对象上的PHP异常处理
function getAge($date){
try {
$dobObject = new DateTime($date);
$nowObject = new DateTime();
$diff = $dobObject->diff($nowObject);
}
catch (Exception $e) {
echo 'Error: ', $e->getMessage();
}
return $diff->y;
}
错误:
Fatal error: Uncaught exception 'Exception' with message 'DateTime::_construct() [datetime.--construct]: Failed to parse time string (422926860) at position 7 (6): Unexpected character' in ... .php:4 Stack trace: #0 ... .php(4): DateTime->_construct('422926860') #1 ... .php(424): getAge('422926860') #2 {main} thrown in/... .php on line 4
非常感谢你提前!
我想你的代码,它完美的作品。捕获异常并显示“错误:...”,但没有发生致命错误。您的错误必须位于代码中的其他位置(哪一个位于第四行?)或您的PHP .ini配置或版本中。我在使用PHP 5.4.0 @ Ubuntu 12.04。 – feeela 2012-07-05 12:25:06