我正在尝试使用自定义参数创建自定义异常。我觉得我在这里做错了什么。基本上我想在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;
}
}
这里的想法是将userId传递给异常,以便稍后可以访问它。但我遇到了问题。在这种情况下,我不知道要传递什么作为“$ previous”变量......
throw new ApiException($user->id, 'im testing', 200, $previous);
非常感谢任何帮助。
答案 0 :(得分:3)
在例外
上查看此documentation上一个变量用于异常链接,默认值为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;
}
}
通过这种方式,您可以继续支持异常链接,如果将来需要它,但每次抛出ApiException时都不需要它。