[英]Laravel : Can't catch exception thrown by Carbon
下面的代码引发了致命错误,但由于任何原因我都无法捕获。
namespace App\Http\Controllers;
use Carbon\Carbon;
use Log;
public function testError()
{
try {
$now = Carbon::now();
$datetime = null;
//$datetime = Carbon::parse($datetime);
$lastlock = $datetime->diffInSeconds($now);
Log::info($lastlock);
//
}catch (\Exception $d){
Log::info("error:: " . $d->getMessage());
}
}
引发致命错误
FatalErrorException in TestController.php line 310:
Call to a member function diffInSeconds() on null
我希望它应该在catch块中处理。
请提出建议。
使用Throwable代替Exception
try {
$now = Carbon::now();
$datetime = null;
//$datetime = Carbon::parse($datetime);
$lastlock = $datetime->diffInSeconds($now);
Log::info($lastlock);
//
}catch (\Throwable $d){
Log::info("error:: " . $d->getMessage());
}
UPDATE
似乎php 5处理异常的方式不同,而我使用的是php 7.2
尝试这个:
try {
$now = Carbon::now();
$datetime = null;
//$datetime = Carbon::parse($datetime);
$lastlock = $datetime->diffInSeconds($now);
Log::info($lastlock);
//
} catch(Error $e) {
dd($e->getMessage());
} catch(Throwable $e) {
dd($e->getMessage());
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.