如何在php中抛出数组异常

Cod*_*ack 8 php exception-handling

所以我有一个错误消息被抛出一个文件

$error_message = "Error received for " . $service . ": " . $_r['status'] . "\n" . "Message received: " . $_r['errors'];
throw new My_Exception($error_message);
Run Code Online (Sandbox Code Playgroud)

在我的另一个文件中

try {
    //blah blah
} catch( My_Exception $e ) { 
    var_export($e->getMessage());
}
Run Code Online (Sandbox Code Playgroud)

然而,问题是$ _r ['errors']是一个ARRAY,它得到$ e-> getMessage()只是将它打印为"Array".如何修改此代码以访问阵列?

rad*_*men 14

问题是你正在尝试将数组与字符串合并.它总会这样结束.

也许您应该将异常传递给数组,以便稍后可以使用它?

<?php
class myException extends Exception {

    private $params;

    public function setParams(array $params) {
        $this->params = $params;
    }

    public function getParams() {
        return $this->params;
    }
}

// later it can be used like this:
try {
    $exception = new myException('Error!');
    $exception->setParams(array('status' => 1, 'errors' => array());

    throw $exception;
}
catch (myException $e) {
    // ...
}
?>
Run Code Online (Sandbox Code Playgroud)


hak*_*kre 8

要将类似数组的复杂数据结构转换为字符串(例如,用于错误消息),您可以使用print_rDocs并将其第二个参数设置为TRUE:

... ": " . print_r($_r['status'], TRUE) . "\n" ...
Run Code Online (Sandbox Code Playgroud)