繁体   English   中英

Laravel:无法捕获Carbon抛出的异常

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM