6

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

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

throw new \Exception($response);

我要抓住的是:

Error: Wrong parameters for Exception([string $exception [, long $code [, Exception $previous = NULL]]])

任何的想法?

4

3 回答 3

14

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

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

throw new \Exception($response);

阅读错误:

异常([字符串$异常[,$代码[,异常 $previous = NULL]]])

于 2012-08-31T16:10:51.867 回答
1

如果您想以数组作为参数抛出异常,您可以对数组进行json_encode,使其变为字符串。

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

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

于 2017-11-20T11:22:04.890 回答
0

如果你想抛出一个包含数组的异常,那么你可以创建自己的异常类并扩展它——你能在php中抛出一个数组而不是字符串作为异常吗?

于 2014-04-29T15:02:44.790 回答