下面的代码抛出了一个无论出于什么原因我都无法捕获的异常.

try {
    $this->date = \Carbon\Carbon::parse($this->date)->toDateString();
}
catch (Exception $err) {
    $this->date = \Carbon\Carbon::parse("January 1st 1900")->toDateString();
}

Now, if I put this in my routes file in a function closure, it works fine. It's only throwing an exception when it's called from the Model.

exception 'Exception' with message 'DateTime::__construct(): Failed to parse time string (Summer 2015) at position 0 (S): The timezone could not be found in the database' in /home/vagrant/www/steamcompare/vendor/nesbot/carbon/src/Carbon/Carbon.php:222

Has anyone else had this issue with Carbon?

推荐答案

提出这个问题后,我立刻想到了答案.因为我在网上看到了很多关于类似问题的帖子,我想我应该继续回答这个问题.

问题是名称空间.Carbon与我的应用程序在不同的名称空间中运行(很明显),所以当我try 使用catch (Exception)时,我实际上是在try 捕捉我的应用程序名称空间中的异常.将catch语句更改为catch (\Exception)解决了这个问题.

我希望这能帮助那些最终登上这一页的人.

Laravel相关问答推荐

Laravel带S3存储器

提交表格后如何在Livewire 3中调度模式窗口?

Livewire 3分页在点击后不更新页面

我应该如何使用遵循依赖反转原则的工厂方法设计模式

Laravel 10 - 没有 $append 属性的Eloquent 的热切加载

1 子编译中的警告(使用'stats.children:true'和'--stats-children'了解更多详细信息)

使用Laravel Blade Formatter和PHP Intelephense进行 VSCode 格式化

Eager加载:在具有eloquent关系的枢轴上使用`with`

Laravel 的 APP_ENV 变量(在 .env 文件中找到)是否有建议的值列表?

不支持驱动Driver[] - Laravel 5.3

在 Laravel 容器中覆盖单例

Laravel 5 与 Postgresql

如何处理 php (Laravel api) 和 javascript (AngularJS) 之间的日期时间

Laravel - 语法错误,文件意外结束

laravel 队列 - 同步驱动程序如何工作?它是在单独的进程/线程还是主执行线程中执行?

Laravel s3 多桶

如何判断 Laravel 集合是否为空?

Laravel 排序集合,然后按键

laravel:如何获取 eloquent 模型的列名?

Laravel 验证用户名不允许有空格