php - 如何在 PHP DateTime::createFromFormat() 上抛出异常?

标签 php exception

我是抛出异常的新手,在使用此 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使用无效值调用时,它返回 falsefalse 没有方法 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/

相关文章:

javascript - 我的 jquery select 有什么问题

php - 如何更改 PHPStorm 中选定文本/代码的颜色

c++ - 为什么 ideone.com 这样做?

c++ - 如果忽略错误状态,如何防止编译?

c# - 在 NUnit 3 中使用 [TestCase] 属性测试异常?

c++ - "Thou shalt not throw"和 noexcept

C++在删除无效地址时抛出异常

php - CURL函数在php中返回null

php - 使用 php 生成日期并将其插入 MySQL 数据库

php - 获取标记帖子 wordpress