Laravel 5.1 自定义异常的自定义参数

ack*_*hez 3 php exception laravel-5 laravel-5.1

我正在尝试创建一个带有自定义参数的自定义异常。我觉得我在这里做错了什么。基本上我想在 Laravel 的异常处理文件中处理异常,但我需要额外的异常数据来了解诸如谁引起了异常之类的信息。这就是我到目前为止所拥有的......

<?php

namespace App\Exceptions;

use Exception;

class ApiException extends \Exception
{
    public $userId;

    public function __construct($userId, $message, $code, Exception $previous)
    {
        parent::__construct($message, $code, $previous);
        $this->userId = $userId;
    }

}
Run Code Online (Sandbox Code Playgroud)

这里的想法是将 userId 传递到异常中,以便我稍后可以访问它。但我有一个问题。在这种情况下,我不知道要传递什么作为“$previous”变量......

throw new ApiException($user->id, 'im testing', 200, $previous);
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激。

Sla*_*opy 5

请参阅有关异常的文档

前一个变量用于异常链接,并且具有默认值NULL。您可以将其添加到您的扩展中。

<?php

namespace App\Exceptions;

use Exception;

class ApiException extends \Exception
{
    public $userId;

    public function __construct($userId, $message, $code, Exception $previous = NULL)
    {
        parent::__construct($message, $code, $previous);
        $this->userId = $userId;
    }

}
Run Code Online (Sandbox Code Playgroud)

这样,您可以继续支持异常链(如果将来需要的话),但不需要每次抛出 ApiException 时都需要它。