Php 将数组()作为异常抛出时获取错误

Php 将数组()作为异常抛出时获取错误,php,arrays,Php,Arrays,我试图将数组作为异常传递。稍后我会将其编码为json try { class myException extends Exception { private $params; public function setParams(array $params) { $this->params = $params; } public function getParams() { return $this->params; }

我试图将数组作为异常传递。稍后我会将其编码为json

try {
    class myException extends Exception {
        private $params;
        public function setParams(array $params) { $this->params = $params; }
        public function getParams() { return $this->params; }
    }

    throw new myException(
        array(
            'error' => array(
                'status' => true,
                'code' => '12',
                'note' => 'Does NOT contain application/json'
            )
        )
    ); 

} catch (myException $e) {
    print_r($e->getParams());
}
但不断出现以下错误:

致命错误:未捕获错误:myException([string]的参数错误 中的$message[,long$code[,Throwable$previous=NULL]]]) /home/domain/script.php:79堆栈跟踪:

#0/home/domain/script.php(79):异常->构造(数组)

#第79行的/home/domain/script.php中抛出了1{main}


甚至可以传递数组吗

如果是这样,我的代码有什么问题?

需要一个字符串作为第一个参数。如果要传递数组,应重写构造函数

class myException extends Exception {
    private $params;
    public function setParams(array $params) { $this->params = $params; }
    public function __construct(array $params = array(), $code = 0,  Throwable $previous = NULL) {
        $this->setParams($params);

        parent::__construct('', $code, $previous);
    }
需要字符串作为第一个参数。如果要传递数组,应重写构造函数

class myException extends Exception {
    private $params;
    public function setParams(array $params) { $this->params = $params; }
    public function __construct(array $params = array(), $code = 0,  Throwable $previous = NULL) {
        $this->setParams($params);

        parent::__construct('', $code, $previous);
    }

当使用它时,我得到了以下错误:
致命错误:未捕获错误:调用/home/domain/script.php:25堆栈跟踪中未定义的方法myException::setParams():#0/home/domain/script.php(79):myException-u构造(数组)#1{main}抛出第25行的/home/domain/script.php
第25行是
$this->setParams($params)是。为什么要删除
公共函数setParams(数组$params){$this->params=$params;}
?您应该保留该类的其余部分。使用该类时,我会出现以下错误:
致命错误:未捕获错误:调用/home/domain/script.php:25堆栈跟踪:#0/home/domain/script.php(79):myException-u构造(数组)#1{main}在第25行的/home/domain/script.php中抛出
第25行是
$this->setParams($params)是。为什么要删除
公共函数setParams(数组$params){$this->params=$params;}
?你应该留下班上的其他人。