laravel:传递给 App\Exceptions\CustomException::report() 的参数 1 必须是 Exception 的实例,
laravel: Argument 1 passed to App\Exceptions\CustomException::report() must be an instance of Exception,
我在 Laravel 5.2 中创建了自定义异常 class。在 laravel 5.4.
之前一直有效
当我尝试将相同的 自定义异常 class 与 laravel 5.5 一起使用时,它抛出以下错误。
Type error: Argument 1 passed to App\Utility\Exceptions\CustomException::report() must be an instance of Exception, none given, called in /var/www/html/bubbles/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php on line 102 {"exception":"[object] (Symfony\Component\Debug\Exception\FatalThrowableError(code: 0): Type error: Argument 1 passed to App\Utility\Exceptions\CustomException::report() must be an instance of Exception, none given, called in /var/www/html/bubbles/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php on line 102 at /var/www/html/bubbles/app/Utility/Exceptions/CustomException.php:39)
这是我一直在使用的自定义异常class
<?php
namespace App\Utility\Exceptions;
use Illuminate\Support\Facades\Lang;
use Exception;
class CustomException extends Exception
{
private $error_code = NULL;
private $error_info = NULL;
function __construct($type = NULL, $errors = NULL)
{
$this->error_code = $type['error_code'];
$this->error_info = $errors;
$message = Lang::get('exceptions.'.$this->error_code);
parent::__construct($message, $type['code'], NULL);
}
public function report(Exception $exception)
{
parent::report($exception);
}
public function getErrorCode()
{
return $this->error_code;
}
public function getErrorInfo()
{
return $this->error_info;
}
}
// end of class CustomException
// end of file CustomException.php
有人能解释一下为什么抛出参数必须是异常实例吗?任何帮助将不胜感激。
我的编程环境
PHP 7.0.1
Laravel5.5
Laravel 5.5 中的异常处理程序检查异常是否有报告方法,如果有,让异常处理报告本身。这意味着处理程序将看到您的报告方法,并调用 $e->report();
,但您的报告方法需要一个参数。
这是在 Handler::report 中完成的。
如果您想使用此功能,您需要删除报告方法中的参数(它应该报告自己;$this
),或者如果您不想使用此功能,则需要重命名该方法Laravel 调用它(并失败)。
我在 Laravel 5.2 中创建了自定义异常 class。在 laravel 5.4.
之前一直有效当我尝试将相同的 自定义异常 class 与 laravel 5.5 一起使用时,它抛出以下错误。
Type error: Argument 1 passed to App\Utility\Exceptions\CustomException::report() must be an instance of Exception, none given, called in /var/www/html/bubbles/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php on line 102 {"exception":"[object] (Symfony\Component\Debug\Exception\FatalThrowableError(code: 0): Type error: Argument 1 passed to App\Utility\Exceptions\CustomException::report() must be an instance of Exception, none given, called in /var/www/html/bubbles/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php on line 102 at /var/www/html/bubbles/app/Utility/Exceptions/CustomException.php:39)
这是我一直在使用的自定义异常class
<?php
namespace App\Utility\Exceptions;
use Illuminate\Support\Facades\Lang;
use Exception;
class CustomException extends Exception
{
private $error_code = NULL;
private $error_info = NULL;
function __construct($type = NULL, $errors = NULL)
{
$this->error_code = $type['error_code'];
$this->error_info = $errors;
$message = Lang::get('exceptions.'.$this->error_code);
parent::__construct($message, $type['code'], NULL);
}
public function report(Exception $exception)
{
parent::report($exception);
}
public function getErrorCode()
{
return $this->error_code;
}
public function getErrorInfo()
{
return $this->error_info;
}
}
// end of class CustomException
// end of file CustomException.php
有人能解释一下为什么抛出参数必须是异常实例吗?任何帮助将不胜感激。
我的编程环境 PHP 7.0.1 Laravel5.5
Laravel 5.5 中的异常处理程序检查异常是否有报告方法,如果有,让异常处理报告本身。这意味着处理程序将看到您的报告方法,并调用 $e->report();
,但您的报告方法需要一个参数。
这是在 Handler::report 中完成的。
如果您想使用此功能,您需要删除报告方法中的参数(它应该报告自己;$this
),或者如果您不想使用此功能,则需要重命名该方法Laravel 调用它(并失败)。