【发布时间】:2015-05-12 17:15:04
【问题描述】:
我有一个 Laravel/PHP 应用程序,代码如下:
try {
//gets the day of the last record for logged in user
$lastRecord = $user->records()->orderBy('date', 'DESC')->first()->date;
//convert to date
$lastTime = \Carbon\Carbon::createFromFormat('Y-m-d', $lastRecord);
}
catch(Exception $e) {
$lastTime = \Carbon\Carbon::now($user->timezone)->addDays(-1);
}
但我仍然收到错误:
ErrorException in Habit.php line 104:
Trying to get property of non-object
现在我很困惑.. 主要想法是有时会失败,然后继续到 catch 块。怎么还是报错?
【问题讨论】:
-
您确定没有在您的 catch 块中引起另一个异常吗?你确定
now()无条件返回一个对象?其中#104 是哪一行? -
第 104 行是:$lastRecord = $user->records()->orderBy('date', 'DESC')->first()->date;
-
是否有可能 Laravel 有一些调试设置,即使在 try/catch 块上也会引发每个错误?
-
好吧,追查调用树。
var_dump($user); var_dump($user->records())等等...看看哪些调用返回的不是对象。 -
你能发布你得到的异常调用堆栈吗?