我是抛出异常的新手,在使用此 PHP 基本方法 DateTime::createFromFormat() 时我不知道如何抛出异常
案例如下:
private function obtainMostRecentFile($fileNamesArray, $start, $lenght) {
foreach ($fileNamesArray as $row) {
$i++;
$format = 'Ymd';
$date = DateTime::createFromFormat($format, substr($row, $start, $lenght));
$date_in_format[$i] = $date->format('Ymd');
}
return (max($date_in_format));
}
我有这个方法,我需要找到一种方法在 DateTime::createFromFormat($format, substr($row, $start, $lenght));
执行时抛出异常无法正确运行。
例如:
如果我调用 $this->obtainMostRecentFile("GeoLiteCity_20101201.zip", 12, 8);
函数返回它们应该返回的输出。
如果我调用 $this->obtainMostRecentFile("GeoLiteCity_201.zip", 12, 8);
函数返回输出 Fatal error: Call to a member function format() on C:\xampp\htdocs\testes\testecsv4.php 中第 440 行的非对象
。
通常我会这样做:
if (is_null($someVariable)) {
throw new Exception("null variable");
}
你能给我一些关于如何为 DateTime::createFromFormat()
抛出异常的线索吗?
最好的问候,
最佳答案
当 DateTime::createFromFormat
使用无效值调用时,它返回 false
。 false
没有方法 format
,所以这就是您的应用程序崩溃的地方:
$date_in_format[$i] = $date->format('Ymd');
你应该在那之前包括一个检查:
$format = 'Ymd';
$date = DateTime::createFromFormat($format, substr($row, $start, $lenght));
if($date === false) {
// throw an exception here!
}
$date_in_format[$i] = $date->format('Ymd');
关于php - 如何在 PHP DateTime::createFromFormat() 上抛出异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4519173/