PHP:错误:抛出数组异常的异常参数错误

PHP:错误:抛出数组异常的异常参数错误,php,exception,exception-handling,Php,Exception,Exception Handling,我使用数组抛出异常,如下所示: $response = array('login_email' => '<div class="warning">Your email and / or password were incorrect</div>'); throw new \Exception($response); 有什么想法吗?Exception()不会接受数组。你需要给它一个字符串 $response = 'Your email and / or passw

我使用数组抛出异常,如下所示:

$response = array('login_email' => '<div class="warning">Your email and / or password were incorrect</div>');

throw new \Exception($response);
有什么想法吗?

Exception()不会接受数组。你需要给它一个字符串

$response = 'Your email and / or password were incorrect.';

throw new \Exception($response);
$response = array('login_email' => 'sometext', 'last_query' => 'sometext');
throw new \Exception(json_encode($response));
读取错误:

异常([字符串$Exception[,$code[,异常 $previous=NULL]]])


如果要抛出包含数组的异常,则可以创建自己的异常类并对其进行扩展-

如果要抛出包含数组作为参数的异常,则可以将数组设置为字符串

$response = 'Your email and / or password were incorrect.';

throw new \Exception($response);
$response = array('login_email' => 'sometext', 'last_query' => 'sometext');
throw new \Exception(json_encode($response));

还可以看看json_encode的第二个参数:可以添加json_PRETTY_PRINT以缩进错误(可读性更强,但占用更多空间),或者可以使用Notepad++之类的工具在查看json字符串时格式化json字符串。

我就是这么想的,尽管我很确定在过去我已经成功地将数组作为参数传递-无论如何,谢谢。如果你想指定异常的类型,你可以给它传递一个代码。新的例外情况($答复,2);中也有几种预定义的异常类型(如果其中任何一种适用的话)。但是它们都扩展了主异常并继承了发送给构造函数的参数,不是吗?作为一个额外的提示,如果您使用常量作为第二个参数,请确保它是实际定义的。。。